Update CheckBox filter defaultValue to be string array.

Signed-off-by: Camila Belo <camilaibs@gmail.com>
Signed-off-by: Eric Peterson <ericpeterson@spotify.com>
This commit is contained in:
Camila Belo
2021-05-25 11:20:24 +02:00
committed by Eric Peterson
parent 4e6d888340
commit c70139e732
@@ -43,12 +43,9 @@ export type Props = {
debug?: boolean;
name: string;
values?: string[];
defaultValue?: string | null;
defaultValue?: string[] | string | null;
};
/**
* @param defaultValue - The default value. If more than one value should be defaulted to "checked," pass a comma-separated string.
*/
const CheckboxFilter = ({ name, defaultValue, values }: Component) => {
const { filters, setFilters } = useSearch();
@@ -76,13 +73,12 @@ const CheckboxFilter = ({ name, defaultValue, values }: Component) => {
};
useEffect(() => {
if (defaultValue) {
if (defaultValue && Array.isArray(defaultValue)) {
setFilters(prevFilters => ({
...prevFilters,
[name]: defaultValue.split(','),
[name]: defaultValue,
}));
}
// eslint-disable-next-line react-hooks/exhaustive-deps
}, [defaultValue, setFilters]);
return (
@@ -127,18 +123,14 @@ const SelectFilter = ({ name, defaultValue, values }: Component) => {
}
};
useEffect(
() => {
if (defaultValue) {
setFilters(prevFilters => ({
...prevFilters,
[name]: defaultValue,
}));
}
},
// eslint-disable-next-line react-hooks/exhaustive-deps
[setFilters, defaultValue],
);
useEffect(() => {
if (defaultValue && typeof defaultValue === 'string') {
setFilters(prevFilters => ({
...prevFilters,
[name]: defaultValue,
}));
}
}, [setFilters, defaultValue]);
return (
<FormControl variant="filled" className={classes.select}>