Feat : mh lọc back lại vẫn giữ fill lọc cũ

quy_fe
Quy_FE 3 months ago
parent d9bbcd2850
commit ec162f6e45
  1. 50
      src/_screens/criteria/criteria-manage/index.js

@ -35,6 +35,7 @@ export default function CriteriaManage() {
const [statusCriteriaSelected, setStatusCriteriaSelected] = useState(listStatusCriteria[0]); const [statusCriteriaSelected, setStatusCriteriaSelected] = useState(listStatusCriteria[0]);
const [isLoading, setIsLoading] = useState(false); const [isLoading, setIsLoading] = useState(false);
const [isFiltered, setIsFiltered] = useState(false); const [isFiltered, setIsFiltered] = useState(false);
const [endPointSave, setendPointSave] = useState(null)
const dispatch = useDispatch(); const dispatch = useDispatch();
const changeProvince = (item) => { const changeProvince = (item) => {
setProvinceSelect(item); setProvinceSelect(item);
@ -84,6 +85,7 @@ export default function CriteriaManage() {
); );
return; return;
} }
saveCurrentState()
history.push( history.push(
PATH.criteria.setting + PATH.criteria.setting +
`?schoolList=${encodeURIComponent(JSON.stringify(listIdSelected))}`, `?schoolList=${encodeURIComponent(JSON.stringify(listIdSelected))}`,
@ -117,7 +119,7 @@ export default function CriteriaManage() {
// await setSearchText(""); // await setSearchText("");
// await changeProvince(listProvince[0]); // await changeProvince(listProvince[0]);
// await setStatusCriteriaSelected(listStatusCriteria[0]); // await setStatusCriteriaSelected(listStatusCriteria[0]);
getDataCriteria(); // getDataCriteria();
} }
} catch (err) { } catch (err) {
dispatch( dispatch(
@ -162,20 +164,10 @@ export default function CriteriaManage() {
} }
addParam('school_name', searchText); addParam('school_name', searchText);
const obj = queryParams.reduce((acc, curr) => {
const [key, value] = curr.split('=');
acc[key] = value;
return acc;
}, {});
dispatch({
type: TYPE_DISPATCH.SET_FILTER_CRITERIA,
payload: obj,
});
const endPoint = `/report/api_report/getOrganizationAndCriteria${ const endPoint = `/report/api_report/getOrganizationAndCriteria${
isFilter && queryParams.length ? `?${queryParams.join("&")}` : "" isFilter && queryParams.length ? `?${queryParams.join("&")}` : ""
}`; }`;
setendPointSave(endPoint)
const res = await apiCaller(endPoint, "GET"); const res = await apiCaller(endPoint, "GET");
if (res?.status) { if (res?.status) {
setListData(res?.data); setListData(res?.data);
@ -247,7 +239,6 @@ export default function CriteriaManage() {
useEffect(() => { useEffect(() => {
getProvinceList(); getProvinceList();
// getDataCriteria();
}, []); }, []);
const isDisabled = () => const isDisabled = () =>
@ -258,6 +249,39 @@ export default function CriteriaManage() {
statusCriteriaSelected.value statusCriteriaSelected.value
); );
useEffect(async() => {
const savedState = sessionStorage.getItem('criteriaManageState');
if (savedState) {
const state = JSON.parse(savedState);
setSearchText(state.searchText);
setListIdSelected(state.listIdSelected);
setProvinceSelect(state.provinceSelect);
setDistrictSelect(state.districtSelect);
setStatusCriteriaSelected(state.statusCriteriaSelected);
if(state.endPointSave){
const res = await apiCaller(state.endPointSave, "GET");
if (res?.status) {
setListData(res?.data);
setIsFiltered(true);
setListIdSelected([]);
}
}
sessionStorage.removeItem('criteriaManageState');
}
}, []);
const saveCurrentState = () => {
const currentState = {
searchText,
listIdSelected,
provinceSelect,
districtSelect,
statusCriteriaSelected,
endPointSave,
};
sessionStorage.setItem('criteriaManageState', JSON.stringify(currentState));
};
return ( return (
<div className="flex-1"> <div className="flex-1">
<Header <Header

Loading…
Cancel
Save