diff --git a/src/pages/GFMIS/SearchForm.js b/src/pages/GFMIS/SearchForm.js index 75f4ad8..16e7c14 100644 --- a/src/pages/GFMIS/SearchForm.js +++ b/src/pages/GFMIS/SearchForm.js @@ -26,7 +26,7 @@ const SearchPublicNoticeForm = ({ applySearch, generateXML, searchCriteria, onGr // const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); const [minDate, setMinDate] = React.useState(searchCriteria.dateFrom); - const [maxDate,setMaxDate] = React.useState(searchCriteria.dateFrom); + const [maxDate, setMaxDate] = React.useState(searchCriteria.dateTo); const [fromDateValue, setFromDateValue] = React.useState("dd / mm / yyyy"); const [toDateValue, setToDateValue] = React.useState("dd / mm / yyyy"); const [payMethod, setPayMethod] = React.useState(ComboData.payMethod[0]); diff --git a/src/pages/GFMIS/index.js b/src/pages/GFMIS/index.js index 6380305..2b7ccd0 100644 --- a/src/pages/GFMIS/index.js +++ b/src/pages/GFMIS/index.js @@ -39,6 +39,9 @@ const BackgroundHead = { const Index = () => { + const [isTxLoading, setIsTxLoading] = React.useState(false); + const [autoPreviewPending, setAutoPreviewPending] = React.useState(false); + const [searchCriteria, setSearchCriteria] = React.useState({ dateTo: DateUtils.dateValue(new Date()), dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate()-14)), @@ -68,11 +71,19 @@ const Index = () => { }, [searchCriteria]); React.useEffect(() => { - if (selectedIds.length > 0) { - const withToken = { ...searchCriteria, __ts: Date.now() }; - setPreviewSearchCriteria(withToken); - } - }, [selectedIds, searchCriteria]); + if (!autoPreviewPending) return; + + // wait for tx grid load complete, and for auto-selection to happen + if (isTxLoading) return; + if (!selectedIds || selectedIds.length === 0) return; + + // trigger preview exactly once + const withToken = { ...searchCriteria, __ts: Date.now() }; + setPreviewSearchCriteria(withToken); + setPreviewToken(t => t + 1); + + setAutoPreviewPending(false); + }, [autoPreviewPending, isTxLoading, selectedIds, searchCriteria]); function downloadXML() { console.log(selectedIds.join(',')) @@ -138,15 +149,18 @@ const Index = () => { function applySearch(input) { + setAutoPreviewPending(true); // NEW: ask for auto-preview after grid loads setGridOnReady(true); setSelectedIds([]); - setPreviewSearchCriteria({}); + setPreviewSearchCriteria({}); setSearchCriteria(input); setInputDate(input.dateFrom); } + function previewSearch() { if (selectedIds.length === 0) return; + setIsPopUp(false); setIsPreviewLoading(true); @@ -156,14 +170,16 @@ const Index = () => { setPreviewToken(t => t + 1); } + function onPreviewGridOnReady(isLoading) { // FiDataGrid calls this with true/false setIsPreviewLoading(isLoading); } - function applyGridOnReady(input) { - setGridOnReady(input); + function applyGridOnReady(isLoading) { + setGridOnReady(isLoading); // keep existing behavior for disabling Search + setIsTxLoading(isLoading); // NEW: remember tx grid loading } function generateXML(input) { diff --git a/src/pages/Payment/FPS/FPS.js b/src/pages/Payment/FPS/FPS.js index 5b89877..d3284a4 100644 --- a/src/pages/Payment/FPS/FPS.js +++ b/src/pages/Payment/FPS/FPS.js @@ -303,7 +303,7 @@ const Index = () => { clearInterval(currentTimer.current); setqrCodeTimeout(true) setTimeDownCount(0); - cancelPayment() + // cancelPayment() }else{ setTimeDownCount(timedowncount); }