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[]>([]);
|
||||
|
||||
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
|
||||
// <Box
|
||||
@ -108,7 +133,7 @@ export function DocSearchView() {
|
||||
filterComp = <DecimalFilter label={filter.label ?? filter.name} />
|
||||
break;
|
||||
case 'VARCHAR':
|
||||
filterComp = <TextFilter label={filter.label ?? filter.name} />
|
||||
filterComp = <TextFilter label={filter.label ?? filter.name} onChange={value => updateAttribute(filter.name, value)} />
|
||||
break;
|
||||
case 'DATE':
|
||||
filterComp = <DateFilter label={filter.label ?? filter.name} />
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user