diff --git a/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx b/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx
index 16f5b25..7ced52f 100644
--- a/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx
+++ b/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx
@@ -109,7 +109,7 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode })
meta: { headerClassName: 'w-[200px]' }
},
{
- accessorFn: (row) => row.parentName,
+ accessorFn: (row) => row.parentName || row.module,
id: 'menu',
header: ({ column }) => ,
enableSorting: false,
@@ -234,30 +234,38 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode })
const getMenusLists = async (page: number, limit: number, sorting: any, filter: any) => {
try {
sorting = sorting.length === 0 ? [{ id: 'name', desc: false }] : sorting;
- filter = filter.length === 0 ? {} : { any: filter[0].value?.toLowerCase() };
+ filter = filter.length === 0 ? {} : { name: { like: `%${filter[0].value?.toLowerCase()}%` } };
- const response = await GetData(`${API_URL}/menus/list`, {
+ const query: any = {
limit,
page: 1,
with_deleted: false,
order_field: sorting[0].id,
- order_direction: sorting[0].desc ? 'DESC' : 'ASC',
- filter: JSON.stringify(filter)
- });
+ order_direction: sorting[0].desc ? 'DESC' : 'ASC'
+ };
- if (!response?.data.list) return { data: [], totalCount: 0 };
+ if (filter && Object.keys(filter).length > 0) {
+ query.filter = JSON.stringify(filter);
+ query.page = page + 1;
+ }
- const transformedData = response.data.list.flatMap((row: any, parentIdx: number) =>
- flattenChildren(row, parentIdx)
- );
+ const response = await GetData(`${API_URL}/menus/list`, query);
- const total_count = transformedData.length;
+ if (query.filter && query.filter.length > 0) {
+ return { data: response?.data.list, totalCount: response?.data.total_count };
+ } else {
+ const transformedData = response?.data.list.flatMap((row: any, parentIdx: number) =>
+ flattenChildren(row, parentIdx)
+ );
- // **Pagination di frontend saja (tanpa hit API ulang)**
- const paginatedData = transformedData.slice(page * limit, (page + 1) * limit);
- const totalPages = Math.ceil(total_count / limit);
+ const total_count = transformedData.length;
- return { data: paginatedData, totalCount: total_count };
+ // **Pagination di frontend saja (tanpa hit API ulang)**
+ const paginatedData = transformedData.slice(page * limit, (page + 1) * limit);
+ const totalPages = Math.ceil(total_count / limit);
+
+ return { data: paginatedData, totalCount: total_count };
+ }
} catch (error) {
console.error('Error fetching Menus', error);
return { data: [], totalCount: 0 };
@@ -287,7 +295,7 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode })
pagination={{ size: 25 }}
toolbar={}
layout={{ card: true }}
- sorting={[{ id: 'id', desc: false }]}
+ sorting={[{ id: 'created_at', desc: true }]}
serverSide={true}
onFetchData={({ pageIndex, pageSize, sorting, columnFilters }) =>
getMenusLists(pageIndex, pageSize, sorting, columnFilters)