add reset button to list filters

This commit is contained in:
jeffvli
2026-01-17 17:43:55 -08:00
parent 5b519320c2
commit 9b97a3fa61
11 changed files with 180 additions and 105 deletions
@@ -38,10 +38,16 @@ export const SelectWithInvalidData = ({ data, defaultValue, ...props }: SelectPr
);
};
export const MultiSelectWithInvalidData = ({ data, defaultValue, ...props }: MultiSelectProps) => {
export const MultiSelectWithInvalidData = ({
data,
defaultValue,
value,
...props
}: MultiSelectProps) => {
const { t } = useTranslation();
const currentValue = value ?? defaultValue;
const [fullData, missing] = useMemo(() => {
if (defaultValue?.length) {
if (currentValue?.length) {
const validValues = new Set<string>();
for (const item of data || []) {
if (typeof item === 'string') {
@@ -53,9 +59,9 @@ export const MultiSelectWithInvalidData = ({ data, defaultValue, ...props }: Mul
const missingFields: string[] = [];
for (const value of defaultValue) {
if (!validValues.has(value)) {
missingFields.push(value);
for (const val of currentValue) {
if (!validValues.has(val)) {
missingFields.push(val);
}
}
@@ -65,7 +71,7 @@ export const MultiSelectWithInvalidData = ({ data, defaultValue, ...props }: Mul
}
return [data, []];
}, [data, defaultValue]);
}, [data, currentValue]);
const error = useMemo(
() =>
@@ -75,5 +81,13 @@ export const MultiSelectWithInvalidData = ({ data, defaultValue, ...props }: Mul
[missing, t],
);
return <MultiSelect data={fullData} defaultValue={defaultValue} error={error} {...props} />;
return (
<MultiSelect
data={fullData}
defaultValue={defaultValue}
error={error}
value={value}
{...props}
/>
);
};