Signed-off-by: Emma Indal <emma.indahl@gmail.com>
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
This commit is contained in:
Emma Indal
2021-05-19 21:51:25 +02:00
committed by Eric Peterson
parent af6a718e82
commit d57dc2dce9
4 changed files with 21 additions and 18 deletions
@@ -181,6 +181,7 @@ export const FiltersNext = ({ definitions }: FiltersProps) => {
case 'checkbox':
return (
<CheckBoxFilter
key={definition.field}
fieldName={definition.field}
values={definition.values}
/>
@@ -188,6 +189,7 @@ export const FiltersNext = ({ definitions }: FiltersProps) => {
case 'select':
return (
<SelectFilter
key={definition.field}
fieldName={definition.field}
values={definition.values}
/>
@@ -34,16 +34,13 @@ const useStyles = makeStyles(() => ({
export const SearchBarNext = () => {
const classes = useStyles();
const {
queryState: { term },
setQueryState,
} = useSearch();
const { term, setTerm, setPageCursor } = useSearch();
const [queryString, setQueryString] = useQueryParamState<string>('query');
useEffect(() => {
setQueryState({ term: queryString ?? '', pageCursor: '' });
}, [queryString, setQueryState]);
setTerm(queryString ?? '');
}, [queryString, setTerm]);
useDebounce(
() => {
@@ -55,14 +52,12 @@ export const SearchBarNext = () => {
const handleSearch = (event: React.ChangeEvent | React.FormEvent) => {
event.preventDefault();
setQueryState({
term: (event.target as HTMLInputElement).value,
pageCursor: '',
});
setTerm((event.target as HTMLInputElement).value as string);
};
const handleClearSearchBar = () => {
setQueryState({ term: '', pageCursor: '' });
setTerm('');
setPageCursor('');
};
return (
@@ -22,11 +22,16 @@ import { SearchResultNext } from '../SearchResultNext';
import { SearchContextProvider } from '../SearchContext';
import { FiltersNext, FilterType } from '../FiltersNext';
const exampleFilterDefinition = [
const defaultFilterDefinitions = [
{
field: 'kind',
type: FilterType.SELECT,
values: ['Component', 'Template'],
},
{
field: 'lifecycle',
type: FilterType.CHECKBOX,
values: ['exerpimental', 'production'],
values: ['experimental', 'production'],
},
];
@@ -41,7 +46,7 @@ export const SearchPageNext = () => {
<SearchBarNext />
</Grid>
<Grid item xs={3}>
<FiltersNext definitions={exampleFilterDefinition} />
<FiltersNext definitions={defaultFilterDefinitions} />
</Grid>
<Grid item xs={9}>
<SearchResultNext />
@@ -37,7 +37,7 @@ const DefaultResultListItem = ({ result }: any) => {
export const SearchResultNext = () => {
const {
resultState: { loading, error, value },
result: { loading, error, value },
} = useSearch();
if (loading) {
@@ -58,9 +58,10 @@ export const SearchResultNext = () => {
return (
<List>
{value.results.map(result => (
<>
<DefaultResultListItem result={result.document} />
</>
<DefaultResultListItem
key={result.document.location}
result={result.document}
/>
))}
</List>
);