Merge branch 'master' of https://git.shiblysolution.id/TPAY/dashboard
This commit is contained in:
@ -95,7 +95,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
}
|
||||
},
|
||||
{
|
||||
accessorKey: 'email',
|
||||
accessorFn: (row) => row.email,
|
||||
id: 'email',
|
||||
header: ({ column }) => <DataGridColumnHeader title="Email" column={column} />,
|
||||
enableSorting: true,
|
||||
@ -105,7 +105,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
}
|
||||
},
|
||||
{
|
||||
accessorKey: 'name',
|
||||
accessorFn: (row) => row.name,
|
||||
id: 'name',
|
||||
header: ({ column }) => <DataGridColumnHeader title="Name" column={column} />,
|
||||
enableSorting: true,
|
||||
@ -132,7 +132,7 @@ const ManageUserContextProvider = ({ children }: { children: React.ReactNode })
|
||||
}
|
||||
},
|
||||
{
|
||||
accessorKey: 'status',
|
||||
accessorFn: (row) => row.status,
|
||||
id: 'status',
|
||||
header: ({ column }) => <DataGridColumnHeader title="Status" column={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}
|
||||
</DataGridProvider>
|
||||
|
||||
@ -266,7 +266,7 @@ const ManageTransferTypeContextProvider = ({ children }: { children: React.React
|
||||
pagination={{ size: 10 }}
|
||||
layout={{ card: true }}
|
||||
toolbar={<ListToolbar />}
|
||||
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)
|
||||
|
||||
Reference in New Issue
Block a user