From ec162f6e45218ab1d7b017b71345c4fc7349cbe6 Mon Sep 17 00:00:00 2001 From: Quy_FE Date: Tue, 15 Apr 2025 08:25:59 +0700 Subject: [PATCH] =?UTF-8?q?Feat=20:=20mh=20l=E1=BB=8Dc=20back=20l=E1=BA=A1?= =?UTF-8?q?i=20v=E1=BA=ABn=20gi=E1=BB=AF=20fill=20l=E1=BB=8Dc=20c=C5=A9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../criteria/criteria-manage/index.js | 52 ++++++++++++++----- 1 file changed, 38 insertions(+), 14 deletions(-) diff --git a/src/_screens/criteria/criteria-manage/index.js b/src/_screens/criteria/criteria-manage/index.js index 2f38fd4..d1771a8 100644 --- a/src/_screens/criteria/criteria-manage/index.js +++ b/src/_screens/criteria/criteria-manage/index.js @@ -35,6 +35,7 @@ export default function CriteriaManage() { const [statusCriteriaSelected, setStatusCriteriaSelected] = useState(listStatusCriteria[0]); const [isLoading, setIsLoading] = useState(false); const [isFiltered, setIsFiltered] = useState(false); + const [endPointSave, setendPointSave] = useState(null) const dispatch = useDispatch(); const changeProvince = (item) => { setProvinceSelect(item); @@ -84,6 +85,7 @@ export default function CriteriaManage() { ); return; } + saveCurrentState() history.push( PATH.criteria.setting + `?schoolList=${encodeURIComponent(JSON.stringify(listIdSelected))}`, @@ -117,7 +119,7 @@ export default function CriteriaManage() { // await setSearchText(""); // await changeProvince(listProvince[0]); // await setStatusCriteriaSelected(listStatusCriteria[0]); - getDataCriteria(); + // getDataCriteria(); } } catch (err) { dispatch( @@ -162,20 +164,10 @@ export default function CriteriaManage() { } 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${ isFilter && queryParams.length ? `?${queryParams.join("&")}` : "" }`; + setendPointSave(endPoint) const res = await apiCaller(endPoint, "GET"); if (res?.status) { setListData(res?.data); @@ -247,9 +239,8 @@ export default function CriteriaManage() { useEffect(() => { getProvinceList(); - // getDataCriteria(); }, []); - + const isDisabled = () => !( searchText || @@ -257,6 +248,39 @@ export default function CriteriaManage() { districtSelect.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 (