From 9720aa70b454a1f65b6cbe628acf0d5fa5f85246 Mon Sep 17 00:00:00 2001 From: Wikzyy Date: Mon, 24 Mar 2025 15:34:41 +0700 Subject: [PATCH] fix table rows per page --- .../manage-menu/hooks/ManageMenusContext.tsx | 34 +++++++++++++++---- 1 file changed, 27 insertions(+), 7 deletions(-) diff --git a/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx b/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx index fcdf17c..6978302 100644 --- a/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx +++ b/src/pages/menu/manage-menu/hooks/ManageMenusContext.tsx @@ -174,15 +174,31 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode }) ); const flattenChildren = (parent: any, parentIdx: number, depth = 0, parentName = '') => { + let result: any[] = []; + if (parent.link === '/') { if (!parents.find((el: any) => el.id === parent.id)) setParents((el: any) => [...el, { id: parent.id, name: parent.name }]); // GET PARENTS - } - if (!parent.children || parent.children.length === 0) { - return []; // Jika tidak ada children, kembalikan array kosong + + // Menambahkan parent ke dalam result meskipun tidak memiliki children + result.push({ + id: parent.id, + module: parent.module, + parentName: parentName || parent.name, + name: parent.name, + link: parent.link, + id_parent: parent.id_parent, + status: parent.status, + order_number: parent.order_number + }); } - return parent.children.flatMap((child: any, childIdx: number) => { + // Jika parent tidak memiliki children, langsung return hasil yang sudah ada + if (!parent.children || parent.children.length === 0) { + return result; + } + + const childrenFlattened = parent.children.flatMap((child: any, childIdx: number) => { if (child.children && child.children.length > 0) { return flattenChildren(child, parentIdx * 100 + childIdx, depth + 1, child.name); } @@ -198,6 +214,9 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode }) order_number: parent.order_number }; }); + + // Gabungkan parent dengan children yang sudah diflatten + return [...result, ...childrenFlattened]; }; const getMenusLists = async (page: number, limit: number, sorting: any, filter: any) => { @@ -221,10 +240,11 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode }) ); const total_count = transformedData.length; + const paginatedData = transformedData.slice(page * limit, (page + 1) * limit); console.log(response.data); - setMenus(transformedData); - return { data: transformedData, totalCount: total_count }; + // setMenus(transformedData); + return { data: paginatedData, totalCount: total_count }; } catch (error) { console.error('Error fetching Menus', error); return { data: [], totalCount: 0 }; @@ -251,7 +271,7 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode }) } layout={{ card: true }} sorting={[{ id: 'id', desc: false }]}