From a7223379d83c32016336ec614d916b70c2028685 Mon Sep 17 00:00:00 2001 From: Raja Oktafrianto Date: Mon, 14 Apr 2025 17:38:43 +0700 Subject: [PATCH 1/2] fixing search & sorting manage user --- .../manage-user/hooks/ManageUserContext.tsx | 43 +++++++++---------- 1 file changed, 21 insertions(+), 22 deletions(-) diff --git a/src/pages/settings/user/manage-user/hooks/ManageUserContext.tsx b/src/pages/settings/user/manage-user/hooks/ManageUserContext.tsx index 2e2b2dd..8b33e36 100644 --- a/src/pages/settings/user/manage-user/hooks/ManageUserContext.tsx +++ b/src/pages/settings/user/manage-user/hooks/ManageUserContext.tsx @@ -95,7 +95,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) } }, { - accessorKey: 'email', + accessorFn: (row) => row.email, id: 'email', header: ({ column }) => , enableSorting: true, @@ -105,7 +105,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) } }, { - accessorKey: 'name', + accessorFn: (row) => row.name, id: 'name', header: ({ column }) => , enableSorting: true, @@ -132,7 +132,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) } }, { - accessorKey: 'status', + accessorFn: (row) => row.status, id: 'status', header: ({ column }) => , enableSorting: false, @@ -190,31 +190,31 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) ); const doGetListData = async (page: number, limit: number, sorting: any, filter: any) => { - const mappedFilter = filter.reduce((acc: any, curr: any) => { - let key = curr.id; + const USER_TABLE_COLUMNS = ['username', 'email', 'name', 'status']; - // mapping kolom ke nama kolom lengkap (agar tidak ambigu di backend) - if (key === 'username') key = 'Users.username'; - if (key === 'customer') key = 'Customers.username'; - if (key === 'role_name') key = 'Roles.name'; - if (key === 'email') key = 'Users.email'; - if (key === 'name') key = 'Users.name'; + // ➕ Tambahkan prefix ke field dari tabel Users + const mappedSorting = sorting.map((sort: any) => ({ + ...sort, + id: USER_TABLE_COLUMNS.includes(sort.id) ? `Users.${sort.id}` : sort.id + })); - acc[key] = curr.value.toLowerCase(); - return acc; - }, {}); + const orderField = mappedSorting[0]?.id ?? 'Users.username'; + const orderDirection = mappedSorting[0]?.desc === false ? 'DESC' : 'ASC'; - sorting = sorting.length == 0 ? [{ id: 'Users.username', desc: false }] : sorting; - filter = Object.keys(mappedFilter).length === 0 ? {} : mappedFilter; + filter = + filter.length == 0 + ? {} + : { 'Users.username': { like: `%${filter[0].value?.toLowerCase()}%` } }; const response = await GetData(`${API_URL}/user/list`, { limit: limit, page: page + 1, with_deleted: false, - order_field: sorting[0].id, - order_direction: sorting[0].desc === false ? 'DESC' : 'ASC', + order_field: orderField, + order_direction: orderDirection, filter: JSON.stringify(filter) }); // console.log('response api:', response); + return { data: response?.data.list, totalCount: response?.data.total_count }; }; @@ -241,10 +241,9 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode }) layout={{ card: true }} sorting={[{ id: 'Users.username', desc: false }]} serverSide={true} - onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) => { - // console.log('FILTER SENT:', columnFilters); - return doGetListData(pageIndex, pageSize, sorting, columnFilters); - }} + onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) => + doGetListData(pageIndex, pageSize, sorting, columnFilters) + } > {children} From ea31b37f7738f0cd3855e92c1d7aabae99ecb8ff Mon Sep 17 00:00:00 2001 From: bagusajisaputroo Date: Mon, 14 Apr 2025 17:38:48 +0700 Subject: [PATCH 2/2] remove command on managetransfertype --- .../transfer/transfertype/hooks/ManageTransferTypeContext.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx index 84a1287..efa6279 100644 --- a/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx +++ b/src/pages/transfer/transfertype/hooks/ManageTransferTypeContext.tsx @@ -266,7 +266,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React pagination={{ size: 10 }} layout={{ card: true }} toolbar={} - sorting={[{ id: 'created_at', desc: true }]} // Default sorting + sorting={[{ id: 'created_at', desc: true }]} serverSide={true} onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) => doGetTransferTypeListData(pageIndex, pageSize, sorting, columnFilters)