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 =