fix table rows per page

This commit is contained in:
Wikzyy
2025-03-24 15:34:41 +07:00
parent 2c9c11edf6
commit 9720aa70b4

View File

@ -174,15 +174,31 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode })
); );
const flattenChildren = (parent: any, parentIdx: number, depth = 0, parentName = '') => { const flattenChildren = (parent: any, parentIdx: number, depth = 0, parentName = '') => {
let result: any[] = [];
if (parent.link === '/') { if (parent.link === '/') {
if (!parents.find((el: any) => el.id === parent.id)) if (!parents.find((el: any) => el.id === parent.id))
setParents((el: any) => [...el, { id: parent.id, name: parent.name }]); // GET PARENTS setParents((el: any) => [...el, { id: parent.id, name: parent.name }]); // GET PARENTS
}
if (!parent.children || parent.children.length === 0) { // Menambahkan parent ke dalam result meskipun tidak memiliki children
return []; // Jika tidak ada children, kembalikan array kosong 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) { if (child.children && child.children.length > 0) {
return flattenChildren(child, parentIdx * 100 + childIdx, depth + 1, child.name); 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 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) => { 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 total_count = transformedData.length;
const paginatedData = transformedData.slice(page * limit, (page + 1) * limit);
console.log(response.data); console.log(response.data);
setMenus(transformedData); // setMenus(transformedData);
return { data: transformedData, totalCount: total_count }; return { data: paginatedData, totalCount: total_count };
} catch (error) { } catch (error) {
console.error('Error fetching Menus', error); console.error('Error fetching Menus', error);
return { data: [], totalCount: 0 }; return { data: [], totalCount: 0 };
@ -251,7 +271,7 @@ const ManageMenusContextProvider = ({ children }: { children: React.ReactNode })
<DataGridProvider <DataGridProvider
columns={columns} columns={columns}
pagination={{ size: 50, page: 0, more: false }} pagination={{ size: 25 }}
toolbar={<ListToolbar />} toolbar={<ListToolbar />}
layout={{ card: true }} layout={{ card: true }}
sorting={[{ id: 'id', desc: false }]} sorting={[{ id: 'id', desc: false }]}