From 3cef34bd1e17181ac04a2edf545ccf88a315edf8 Mon Sep 17 00:00:00 2001 From: TekH Date: Wed, 16 Jul 2025 11:03:07 +0200 Subject: [PATCH] =?UTF-8?q?feat(doc-search):=20Hinzuf=C3=BCgen=20von=20Att?= =?UTF-8?q?ributstatusverwaltung=20und=20Eingabewertbindung=20f=C3=BCr=20F?= =?UTF-8?q?ilter?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../document/view/doc-search-view.tsx | 29 +++++++++++++++++-- 1 file changed, 27 insertions(+), 2 deletions(-) diff --git a/src/client/dd-hub-react/src/sections/document/view/doc-search-view.tsx b/src/client/dd-hub-react/src/sections/document/view/doc-search-view.tsx index 3787e27..df112ca 100644 --- a/src/client/dd-hub-react/src/sections/document/view/doc-search-view.tsx +++ b/src/client/dd-hub-react/src/sections/document/view/doc-search-view.tsx @@ -35,6 +35,8 @@ export function DocSearchView() { }); }, []); + const [openCreateFilterModal, setOpenCreateFilterModal] = useState(false); + const [docs, setDocs] = useState([]); useEffect(() => { @@ -43,7 +45,30 @@ export function DocSearchView() { }); }, []); - const [openCreateFilterModal, setOpenCreateFilterModal] = useState(false); + //#region attributes + const [attributes, setAttributes] = useState>({}); + + function setAttribute(name: string, serilizedValue: string) { + setAttributes(prev => ({ + ...prev, + [name]: serilizedValue + })); + } + + function removeAttribute(name: string) { + setAttributes(prev => { + const { [name]: _, ...rest } = prev; + return rest; + }); + } + + function updateAttribute(name: string, serilizedValue?: string | null) { + if (serilizedValue) + setAttribute(name, serilizedValue); + else + removeAttribute(name); + } + //#endregion //#region example components // break; case 'VARCHAR': - filterComp = + filterComp = updateAttribute(filter.name, value)} /> break; case 'DATE': filterComp =