fix table rows per page
This commit is contained in:
@ -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 }]}
|
||||||
|
|||||||
Reference in New Issue
Block a user