From 9145c96d14dea674a55ee25234a99128c1115c8c Mon Sep 17 00:00:00 2001 From: b3aton Date: Tue, 14 Mar 2023 10:11:32 +0800 Subject: [PATCH] fix: clear filter issues --- .../src/components/filter/B3FilterMore.tsx | 30 +++++++++---------- 1 file changed, 15 insertions(+), 15 deletions(-) diff --git a/apps/storefront/src/components/filter/B3FilterMore.tsx b/apps/storefront/src/components/filter/B3FilterMore.tsx index 87bdea1a..85fc59d1 100644 --- a/apps/storefront/src/components/filter/B3FilterMore.tsx +++ b/apps/storefront/src/components/filter/B3FilterMore.tsx @@ -15,6 +15,7 @@ import { useRef, BaseSyntheticEvent, ReactElement, + useEffect, } from 'react' import { @@ -73,6 +74,8 @@ const B3FilterMore: ({ const [isFiltering, setIsFiltering] = useState(false) const [filterCounter, setFilterCounter] = useState(0) + const [cacheData, setCacheData] = useState(null) + const pickerRef = useRef(null) const { @@ -89,6 +92,14 @@ const B3FilterMore: ({ const [isMobile] = useMobile() + useEffect(() => { + if (cacheData) { + Object.keys(cacheData).forEach((item: string) => { + setValue(item, cacheData[item]) + }) + } + }, [open]) + const handleDialogClick = () => { setOpen(true) } @@ -122,31 +133,20 @@ const B3FilterMore: ({ handleFilterStatus(submitData) onChange(submitData) + + setCacheData({ + ...data, + }) } handleClose() })(event) } const handleClearFilters = () => { - const restFilterData: { [x: string]: string } = {} Object.keys(getValues()).forEach((item: string) => { setValue(item, '') - restFilterData[item] = '' }) pickerRef.current?.setClearPickerValue() - - if (startPicker && endPicker) { - startPicker.defaultValue = '' - endPicker.defaultValue = '' - } - - const submitData: any = { - startValue: startPicker?.defaultValue || '', - endValue: endPicker?.defaultValue || '', - ...restFilterData, - } - - handleFilterStatus(submitData) } return (