|
|
|
@@ -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) { |
|
|
|
|