From 1a4a1fd3a8719e753c569502cfd64185d1ecb292 Mon Sep 17 00:00:00 2001 From: philon- Date: Mon, 16 Jun 2025 16:48:42 +0200 Subject: [PATCH] Add advanced filters --- .../generic/Filter/FilterControl.tsx | 35 ++++++++++++++++--- .../generic/Filter/useFilterNode.test.ts | 22 ++++++++++++ .../generic/Filter/useFilterNode.ts | 18 ++++++++++ src/i18n/locales/en/ui.json | 9 +++++ 4 files changed, 80 insertions(+), 4 deletions(-) diff --git a/src/components/generic/Filter/FilterControl.tsx b/src/components/generic/Filter/FilterControl.tsx index 87ff3723..43ea504b 100644 --- a/src/components/generic/Filter/FilterControl.tsx +++ b/src/components/generic/Filter/FilterControl.tsx @@ -190,10 +190,15 @@ export function FilterControl({ ); const handleBoolChange = useCallback( - (key: K, value: string) => { - const typedValue = value === "" - ? undefined - : JSON.parse(value.toLowerCase()); + (key: K, value: string | boolean) => { + let typedValue: boolean | undefined; + if (typeof value === "boolean") { + typedValue = value; + } else if (value === "true" || value === "false") { + typedValue = value === "true"; + } else { + typedValue = undefined; + } setFilterState((prev) => ({ ...prev, @@ -386,6 +391,28 @@ export function FilterControl({ formatEnumLabel(Protobuf.Mesh.HardwareModel[val])} /> + + + +