diff --git a/packages/app/src/components/search/SearchPage.tsx b/packages/app/src/components/search/SearchPage.tsx
index 3aff554b42..59b4168a18 100644
--- a/packages/app/src/components/search/SearchPage.tsx
+++ b/packages/app/src/components/search/SearchPage.tsx
@@ -17,9 +17,15 @@
import React from 'react';
import { Content, Header, Lifecycle, Page } from '@backstage/core';
import { Grid, List } from '@material-ui/core';
-import { SearchBarNext } from '@backstage/plugin-search';
-import { SearchResultNext, DefaultResultListItem } from '@backstage/plugin-search';
-import { SearchFiltersNext, FilterType } from '@backstage/plugin-search';
+import {
+ SearchBarNext,
+ SearchResultNext,
+ DefaultResultListItem,
+ SearchFiltersNext,
+ FilterType,
+ CheckBoxFilter,
+ SelectFilter,
+} from '@backstage/plugin-search';
import { CatalogResultListItem } from '@backstage/plugin-catalog';
const filterDefinitions = [
@@ -44,11 +50,36 @@ export const searchPage = (
-
+
+ <>
+ {filterDefinitions.map(definition => {
+ switch (definition.type) {
+ case 'checkbox':
+ return (
+
+ );
+ case 'select':
+ return (
+
+ );
+ default:
+ return null;
+ }
+ })}
+ >
+
- {({results}) => (
+ {({ results }) => (
{results.map(result => {
switch (result.type) {
diff --git a/plugins/search/src/components/SearchFiltersNext/SearchFiltersNext.tsx b/plugins/search/src/components/SearchFiltersNext/SearchFiltersNext.tsx
index 92c65f4a57..b6536276c3 100644
--- a/plugins/search/src/components/SearchFiltersNext/SearchFiltersNext.tsx
+++ b/plugins/search/src/components/SearchFiltersNext/SearchFiltersNext.tsx
@@ -55,7 +55,7 @@ export type FilterOptions = {
};
type FiltersProps = {
- definitions: FilterDefinition[];
+ children: React.ReactChild;
};
type ValuedFilterProps = {
@@ -79,7 +79,7 @@ export type FilterDefinition = {
values: string[];
};
-const CheckBoxFilter = ({ fieldName, values }: ValuedFilterProps) => {
+export const CheckBoxFilter = ({ fieldName, values }: ValuedFilterProps) => {
const { filters, setFilters } = useSearch();
const classes = useCheckBoxStyles();
@@ -134,7 +134,7 @@ const CheckBoxFilter = ({ fieldName, values }: ValuedFilterProps) => {
);
};
-const SelectFilter = ({ fieldName, values }: ValuedFilterProps) => {
+export const SelectFilter = ({ fieldName, values }: ValuedFilterProps) => {
const { filters, setFilters } = useSearch();
const classes = useSelectStyles();
@@ -171,33 +171,8 @@ const SelectFilter = ({ fieldName, values }: ValuedFilterProps) => {
);
};
-export const SearchFiltersNext = ({ definitions }: FiltersProps) => {
+export const SearchFiltersNext = ({ children }: FiltersProps) => {
const classes = useFilterStyles();
- return (
-
- {definitions.map(definition => {
- switch (definition.type) {
- case 'checkbox':
- return (
-
- );
- case 'select':
- return (
-
- );
- default:
- return null;
- }
- })}
-
- );
+ return {children};
};
diff --git a/plugins/search/src/components/SearchFiltersNext/index.tsx b/plugins/search/src/components/SearchFiltersNext/index.tsx
index d45eadc79a..999db8deb5 100644
--- a/plugins/search/src/components/SearchFiltersNext/index.tsx
+++ b/plugins/search/src/components/SearchFiltersNext/index.tsx
@@ -15,4 +15,9 @@
*/
export { FiltersButtonNext } from './FiltersButtonNext';
-export { SearchFiltersNext, FilterType } from './SearchFiltersNext';
+export {
+ SearchFiltersNext,
+ CheckBoxFilter,
+ SelectFilter,
+ FilterType,
+} from './SearchFiltersNext';
diff --git a/plugins/search/src/index.ts b/plugins/search/src/index.ts
index e5894aced4..4d8d9c08a2 100644
--- a/plugins/search/src/index.ts
+++ b/plugins/search/src/index.ts
@@ -29,6 +29,8 @@ export {
Filters,
FiltersButton,
FilterType,
+ CheckBoxFilter,
+ SelectFilter,
SearchBar,
SearchContextProvider,
useSearch,