feat(doc-search): Hinzufügen von Attributstatusverwaltung und Eingabewertbindung für Filter
This commit is contained in:
parent
1fbcdd82c8
commit
3cef34bd1e
@ -35,6 +35,8 @@ export function DocSearchView() {
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
|
const [openCreateFilterModal, setOpenCreateFilterModal] = useState(false);
|
||||||
|
|
||||||
const [docs, setDocs] = useState<Doc[]>([]);
|
const [docs, setDocs] = useState<Doc[]>([]);
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
@ -43,7 +45,30 @@ export function DocSearchView() {
|
|||||||
});
|
});
|
||||||
}, []);
|
}, []);
|
||||||
|
|
||||||
const [openCreateFilterModal, setOpenCreateFilterModal] = useState(false);
|
//#region attributes
|
||||||
|
const [attributes, setAttributes] = useState<Record<string, string>>({});
|
||||||
|
|
||||||
|
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
|
//#region example components
|
||||||
// <Box
|
// <Box
|
||||||
@ -108,7 +133,7 @@ export function DocSearchView() {
|
|||||||
filterComp = <DecimalFilter label={filter.label ?? filter.name} />
|
filterComp = <DecimalFilter label={filter.label ?? filter.name} />
|
||||||
break;
|
break;
|
||||||
case 'VARCHAR':
|
case 'VARCHAR':
|
||||||
filterComp = <TextFilter label={filter.label ?? filter.name} />
|
filterComp = <TextFilter label={filter.label ?? filter.name} onChange={value => updateAttribute(filter.name, value)} />
|
||||||
break;
|
break;
|
||||||
case 'DATE':
|
case 'DATE':
|
||||||
filterComp = <DateFilter label={filter.label ?? filter.name} />
|
filterComp = <DateFilter label={filter.label ?? filter.name} />
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user