From 9c5bd9ac95bf294c96036b7407650051283a35c1 Mon Sep 17 00:00:00 2001 From: Alex Cheung Date: Mon, 16 Sep 2024 18:03:40 +0800 Subject: [PATCH] fix double search api for data table --- src/components/FiDataGrid.js | 13 ++++++------- src/pages/Announcement/Search/DataGrid.js | 8 ++++++-- src/pages/Announcement/Search_Public/DataGrid.js | 10 +++++++--- src/pages/AuditLog/AuditLogTable.js | 10 +++++++--- src/pages/EmailTemplate/Search_GLD/DataGrid.js | 12 ++++++++---- src/pages/GazetteIssue/DataGrid.js | 8 ++++++-- .../Organization/SearchPage/OrganizationTable.js | 8 ++++++-- src/pages/Payment/Search_GLD/DataGrid.js | 12 ++++++++---- src/pages/Payment/Search_Public/DataGrid.js | 8 ++++++-- src/pages/Proof/Search_GLD/DataGrid.js | 12 ++++++++---- src/pages/Proof/Search_Public/DataGrid.js | 4 ++-- .../ListPanel/SearchPublicNoticeTable.js | 10 +++++++--- src/pages/PublicNotice/Search_GLD/DataGrid.js | 3 +-- src/pages/PublicNotice/Search_GLD/SearchForm.js | 4 ++-- src/pages/PublicNotice/Search_GLD/index.js | 14 +++++++------- src/pages/User/SearchPage/UserTable.js | 8 ++++++-- .../SearchPage_Individual/UserTable_Individual.js | 8 ++++++-- .../UserTable_Organization.js | 8 ++++++-- .../pnspsUserGroupSearchPage/UserGroupTable.js | 8 ++++++-- 19 files changed, 111 insertions(+), 57 deletions(-) diff --git a/src/components/FiDataGrid.js b/src/components/FiDataGrid.js index 7fcce21..42fbf51 100644 --- a/src/components/FiDataGrid.js +++ b/src/components/FiDataGrid.js @@ -11,7 +11,7 @@ import { TablePagination, Typography } from '@mui/material'; export function FiDataGrid({ rows, columns, sx, autoHeight, hideFooterSelectedRowCount, rowModesModel, editMode, - pageSizeOptions, filterItems, customPageSize, doLoad, onGridReady, ...props }) { + pageSizeOptions, filterItems, customPageSize, doLoad, ...props }) { const intl = useIntl(); const [_rows, set_rows] = useState([]); const [_doLoad, set_doLoad] = useState({}); @@ -56,12 +56,6 @@ export function FiDataGrid({ rows, columns, sx, autoHeight, setLoading(true) }, [doLoad]); - useEffect(() => { - setPage(0); - set_doLoad(doLoad); - setLoading(true) - }, [onGridReady]); - useEffect(() => { getDataList(); }, [_doLoad, page]); @@ -122,7 +116,12 @@ export function FiDataGrid({ rows, columns, sx, autoHeight, function getDataList() { + // console.log(Object.keys(_doLoad.params).length > 0) + // console.log(Object.keys(_doLoad.params).length > 0) + if (_doLoad?.url == null) return; + if (_doLoad.params == undefined) return; + if (_doLoad.params.searchCriteria !== undefined) return; if (_doLoad.params == null) _doLoad.params = {}; _doLoad.params.start = page * pageSize; _doLoad.params.limit = pageSize; diff --git a/src/pages/Announcement/Search/DataGrid.js b/src/pages/Announcement/Search/DataGrid.js index 2e37493..d125b80 100644 --- a/src/pages/Announcement/Search/DataGrid.js +++ b/src/pages/Announcement/Search/DataGrid.js @@ -73,10 +73,14 @@ export default function SearchPublicNoticeTable({ searchCriteria }) { customPageSize={10} getRowHeight={() => 'auto'} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + // doLoad={{ + // url: GET_ANNOUNCE_LIST, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_ANNOUNCE_LIST, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/Announcement/Search_Public/DataGrid.js b/src/pages/Announcement/Search_Public/DataGrid.js index 8423ac5..9c12f7c 100644 --- a/src/pages/Announcement/Search_Public/DataGrid.js +++ b/src/pages/Announcement/Search_Public/DataGrid.js @@ -57,10 +57,14 @@ export default function SearchPublicNoticeTable({ searchCriteria }) { columns={columns} customPageSize={10} getRowHeight={() => 'auto'} - doLoad={{ + // doLoad={{ + // url: GET_ANNOUNCE_LIST, + // params: _searchCriteria + // }} + doLoad={React.useMemo(() => ({ url: GET_ANNOUNCE_LIST, - params: _searchCriteria - }} + params: _searchCriteria, + }), [_searchCriteria])} /> ); diff --git a/src/pages/AuditLog/AuditLogTable.js b/src/pages/AuditLog/AuditLogTable.js index db35ddb..89f14ff 100644 --- a/src/pages/AuditLog/AuditLogTable.js +++ b/src/pages/AuditLog/AuditLogTable.js @@ -87,10 +87,14 @@ export default function AuditLogTable({searchCriteria}) { columns={columns} customPageSize={10} getRowHeight={() => 'auto'} - doLoad={{ + // doLoad={{ + // url: GET_AUDIT_LOG_LIST, + // params: _searchCriteria + // }} + doLoad={React.useMemo(() => ({ url: GET_AUDIT_LOG_LIST, - params: _searchCriteria - }} + params: _searchCriteria, + }), [_searchCriteria])} /> ); diff --git a/src/pages/EmailTemplate/Search_GLD/DataGrid.js b/src/pages/EmailTemplate/Search_GLD/DataGrid.js index c895b6b..de8b3e4 100644 --- a/src/pages/EmailTemplate/Search_GLD/DataGrid.js +++ b/src/pages/EmailTemplate/Search_GLD/DataGrid.js @@ -97,10 +97,14 @@ export default function EmailTemplateTable({ responseData }) { customPageSize={10} onRowDoubleClick={handleRowDoubleClick} getRowHeight={() => 'auto'} - doLoad={{ - url:GET_EMAIL_LIST, - params: _responseData - }} + // doLoad={{ + // url:GET_EMAIL_LIST, + // params: _responseData + // }} + doLoad={React.useMemo(() => ({ + url: GET_EMAIL_LIST, + params: _responseData, + }), [_responseData])} /> ); diff --git a/src/pages/GazetteIssue/DataGrid.js b/src/pages/GazetteIssue/DataGrid.js index 8a548ad..6d38f90 100644 --- a/src/pages/GazetteIssue/DataGrid.js +++ b/src/pages/GazetteIssue/DataGrid.js @@ -100,10 +100,14 @@ export default function GazetteIssueTable({ searchCriteria }) { customPageSize={10} // onRowDoubleClick={handleRowDoubleClick} getRowHeight={() => 'auto'} - doLoad={{ + // doLoad={{ + // url: GET_ISSUE, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_ISSUE, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/Organization/SearchPage/OrganizationTable.js b/src/pages/Organization/SearchPage/OrganizationTable.js index 47b7b23..1bbdca4 100644 --- a/src/pages/Organization/SearchPage/OrganizationTable.js +++ b/src/pages/Organization/SearchPage/OrganizationTable.js @@ -113,10 +113,14 @@ export default function OrganizationTable({ searchCriteria }) { columns={columns} customPageSize={10} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + // doLoad={{ + // url: GET_ORG_PATH, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_ORG_PATH, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/Payment/Search_GLD/DataGrid.js b/src/pages/Payment/Search_GLD/DataGrid.js index e4ee253..0c79a46 100644 --- a/src/pages/Payment/Search_GLD/DataGrid.js +++ b/src/pages/Payment/Search_GLD/DataGrid.js @@ -96,10 +96,14 @@ export default function SearchPaymentTable({ searchCriteria }) { columns={columns} customPageSize={10} onRowDoubleClick={handleEditClick} - doLoad={{ - url:PAYMENT_LIST, - params:_searchCriteria, - }} + // doLoad={{ + // url:PAYMENT_LIST, + // params:_searchCriteria, + // }} + doLoad={React.useMemo(() => ({ + url: PAYMENT_LIST, + params: _searchCriteria, + }), [_searchCriteria])} /> ); diff --git a/src/pages/Payment/Search_Public/DataGrid.js b/src/pages/Payment/Search_Public/DataGrid.js index f948633..4ffa964 100644 --- a/src/pages/Payment/Search_Public/DataGrid.js +++ b/src/pages/Payment/Search_Public/DataGrid.js @@ -110,10 +110,14 @@ export default function SearchPublicNoticeTable({ searchCriteria }) { columns={columns} customPageSize={10} onRowDoubleClick={handleEditDoubleClick} - doLoad={{ + // doLoad={{ + // url: PAYMENT_LIST, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: PAYMENT_LIST, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/Proof/Search_GLD/DataGrid.js b/src/pages/Proof/Search_GLD/DataGrid.js index fe83b38..7fe3b00 100644 --- a/src/pages/Proof/Search_GLD/DataGrid.js +++ b/src/pages/Proof/Search_GLD/DataGrid.js @@ -13,7 +13,7 @@ export default function SearchPublicNoticeTable({searchCriteria}) { const navigate = useNavigate() - const [_searchCriteria, set_searchCriteria] = React.useState({}); + const [_searchCriteria, set_searchCriteria] = React.useState({searchCriteria}); React.useEffect(() => { set_searchCriteria(searchCriteria); @@ -119,12 +119,16 @@ export default function SearchPublicNoticeTable({searchCriteria}) { 'auto'} - doLoad={{ + onRowDoubleClick={handleRowDoubleClick} + // doLoad={{ + // url: LIST_PROOF, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: LIST_PROOF, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/Proof/Search_Public/DataGrid.js b/src/pages/Proof/Search_Public/DataGrid.js index a799756..7aa363f 100644 --- a/src/pages/Proof/Search_Public/DataGrid.js +++ b/src/pages/Proof/Search_Public/DataGrid.js @@ -191,10 +191,10 @@ export default function SearchPublicNoticeTable({ searchCriteria }) { customPageSize={10} getRowHeight={() => "auto"} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + doLoad={React.useMemo(() => ({ url: LIST_PROOF, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js index b236f91..610e1c5 100644 --- a/src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js +++ b/src/pages/PublicNotice/ListPanel/SearchPublicNoticeTable.js @@ -133,10 +133,14 @@ export default function SearchPublicNoticeTable({ searchCriteria }) { customPageSize={10} onRowDoubleClick={handleRowDoubleClick} getRowHeight={() => 'auto'} - doLoad={{ + // doLoad={{ + // url: GET_PUBLIC_NOTICE_LIST, + // params: _searchCriteria + // }} + doLoad={React.useMemo(() => ({ url: GET_PUBLIC_NOTICE_LIST, - params: _searchCriteria - }} + params: _searchCriteria, + }), [_searchCriteria])} /> ); diff --git a/src/pages/PublicNotice/Search_GLD/DataGrid.js b/src/pages/PublicNotice/Search_GLD/DataGrid.js index 2158061..6c9873d 100644 --- a/src/pages/PublicNotice/Search_GLD/DataGrid.js +++ b/src/pages/PublicNotice/Search_GLD/DataGrid.js @@ -20,7 +20,7 @@ import { FormattedMessage, useIntl } from "react-intl"; import * as utils from "auth/utils" // ==============================|| EVENT TABLE ||============================== // -export default function SearchPublicNoticeTable({ searchCriteria, onGridReady }) { +export default function SearchPublicNoticeTable({ searchCriteria }) { const [rows, setRows] = React.useState([]); const navigate = useNavigate() @@ -184,7 +184,6 @@ export default function SearchPublicNoticeTable({ searchCriteria, onGridReady }) customPageSize={10} getRowHeight={() => 'auto'} onRowDoubleClick={handleRowDoubleClick} - onGridReady={onGridReady} doLoad={React.useMemo(() => ({ url: GET_PUBLIC_NOTICE_LIST, params: _searchCriteria, diff --git a/src/pages/PublicNotice/Search_GLD/SearchForm.js b/src/pages/PublicNotice/Search_GLD/SearchForm.js index fe4fbfb..68690f9 100644 --- a/src/pages/PublicNotice/Search_GLD/SearchForm.js +++ b/src/pages/PublicNotice/Search_GLD/SearchForm.js @@ -21,7 +21,7 @@ import {DemoItem} from "@mui/x-date-pickers/internals/demo"; import {LocalizationProvider} from "@mui/x-date-pickers/LocalizationProvider"; import {AdapterDayjs} from "@mui/x-date-pickers/AdapterDayjs"; // ==============================|| DASHBOARD - DEFAULT ||============================== // -const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, issueComboData, setSearchReady +const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, issueComboData }) => { const [type, setType] = React.useState([]); @@ -76,7 +76,7 @@ const SearchPublicNoticeForm = ({ applySearch, orgComboData, searchCriteria, iss groupNo: data.groupNo, }; applySearch(temp); - setSearchReady(true) + // setSearchReady(true) }; React.useEffect(() => { diff --git a/src/pages/PublicNotice/Search_GLD/index.js b/src/pages/PublicNotice/Search_GLD/index.js index 0f37bf3..9b0623a 100644 --- a/src/pages/PublicNotice/Search_GLD/index.js +++ b/src/pages/PublicNotice/Search_GLD/index.js @@ -36,7 +36,7 @@ const UserSearchPage_Individual = () => { dateFrom: DateUtils.dateValue(new Date().setDate(new Date().getDate() - 14)) }); const [onReady, setOnReady] = React.useState(false); - const [onGridReady, setGridOnReady] = React.useState(false); + // const [onGridReady, setGridOnReady] = React.useState(false); React.useEffect(() => { getOrgCombo(); @@ -68,13 +68,13 @@ const UserSearchPage_Individual = () => { } function applySearch(input) { - setGridOnReady(false); + // setGridOnReady(false); setSearchCriteria(input); } - function setSearchReady(input) { - setGridOnReady(input); - } + // function setSearchReady(input) { + // setGridOnReady(input); + // } return ( @@ -100,7 +100,7 @@ const UserSearchPage_Individual = () => { orgComboData={orgCombo} issueComboData={issueCombo} searchCriteria={searchCriteria} - setSearchReady={setSearchReady} + // setSearchReady={setSearchReady} /> {/*row 2*/} @@ -112,7 +112,7 @@ const UserSearchPage_Individual = () => { > diff --git a/src/pages/User/SearchPage/UserTable.js b/src/pages/User/SearchPage/UserTable.js index d742106..edff2da 100644 --- a/src/pages/User/SearchPage/UserTable.js +++ b/src/pages/User/SearchPage/UserTable.js @@ -137,10 +137,14 @@ export default function UserTable({searchCriteria}) { customPageSize={10} onRowDoubleClick={handleRowDoubleClick} getRowHeight={() => 'auto'} - doLoad={{ + // doLoad={{ + // url: GLD_USER_PATH, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GLD_USER_PATH, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/User/SearchPage_Individual/UserTable_Individual.js b/src/pages/User/SearchPage_Individual/UserTable_Individual.js index 2097fe9..a727308 100644 --- a/src/pages/User/SearchPage_Individual/UserTable_Individual.js +++ b/src/pages/User/SearchPage_Individual/UserTable_Individual.js @@ -152,10 +152,14 @@ export default function UserTable_Individual({ searchCriteria }) { columns={columns} customPageSize={10} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + // doLoad={{ + // url: GET_IND_USER_PATH, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_IND_USER_PATH, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/User/SearchPage_Organization/UserTable_Organization.js b/src/pages/User/SearchPage_Organization/UserTable_Organization.js index 1e00db0..94e58bd 100644 --- a/src/pages/User/SearchPage_Organization/UserTable_Organization.js +++ b/src/pages/User/SearchPage_Organization/UserTable_Organization.js @@ -147,10 +147,14 @@ export default function UserTable_Organization({searchCriteria}) { columns={columns} customPageSize={10} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + // doLoad={{ + // url: GET_ORG_USER_PATH, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_ORG_USER_PATH, params: _searchCriteria, - }} + }), [_searchCriteria])} /> ); diff --git a/src/pages/pnspsUserGroupSearchPage/UserGroupTable.js b/src/pages/pnspsUserGroupSearchPage/UserGroupTable.js index edd58c3..b1c68c3 100644 --- a/src/pages/pnspsUserGroupSearchPage/UserGroupTable.js +++ b/src/pages/pnspsUserGroupSearchPage/UserGroupTable.js @@ -69,10 +69,14 @@ export default function UserGroupTable({searchCriteria}) { customPageSize={10} pageSizeOptions={[10, 15, 20]} onRowDoubleClick={handleRowDoubleClick} - doLoad={{ + // doLoad={{ + // url: GET_GROUP_LIST_PATH, + // params: _searchCriteria, + // }} + doLoad={React.useMemo(() => ({ url: GET_GROUP_LIST_PATH, params: _searchCriteria, - }} + }), [_searchCriteria])} /> );