Update Add Input Hospital Portal

This commit is contained in:
ivan-sim
2026-02-10 10:03:28 +07:00
parent 7e42a5ecfd
commit 127ef3ff50
31 changed files with 5674 additions and 86 deletions

View File

@@ -80,7 +80,7 @@ export default function NavbarVertical({ isOpenSidebar, onCloseSidebar }: Props)
// console.log(data);
// Pastikan user dan user.permissions terdefinisi dan merupakan array
const userPermissions = user?.permissions?.map(permission => permission.name) || [];
// const userPermissions = user?.permissions?.map(permission => permission.name) || [];
// Fungsi untuk memeriksa apakah pengguna memiliki izin untuk item tertentu
const hasPermission = (permission) => {
@@ -88,37 +88,26 @@ export default function NavbarVertical({ isOpenSidebar, onCloseSidebar }: Props)
};
// Filter data berdasarkan izin pengguna
const filteredNavConfig = data.map(section => {
if (section.children && section.children.length > 0) {
// Cek apakah ada satu atau lebih children yang memiliki izin
const filteredChildren = section.children.filter(child => hasPermission(child.permission));
const userPermissions =
user?.permissions?.map(permission => permission.name) || [];
if (filteredChildren.length > 0) {
return {
...section,
children: filteredChildren
};
} else {
return null; // Lewati bagian yang tidak memiliki children dengan izin
}
}
// Jika tidak ada children, cek izin untuk section itu sendiri
// console.log(section.permission);
return hasPermission(section.permission) ? section : null;
}).filter(section => section !== null);
const filteredNavConfig = data
.filter(item =>
userPermissions.includes(item.permission) &&
item.path && item.path.trim() !== ''
)
.map(item => ({
items: [
{
title: item.title,
path: item.path,
icon: ICONS[item.icon],
},
],
}));
// console.log(filteredNavConfig);
setNavConfig(filteredNavConfig);
const formattedNavConfig = filteredNavConfig.map(item => ({
items: [{
title: item.title,
path: item.path,
icon: ICONS[item.icon]
}]
}));
setNavConfig(formattedNavConfig);
} catch (error) {
console.error('Gagal mengambil konfigurasi navigasi:', error);
@@ -127,7 +116,7 @@ export default function NavbarVertical({ isOpenSidebar, onCloseSidebar }: Props)
fetchNavConfig();
}, [user]);
console.log(navConfig);
// console.log(navConfig);
useEffect(() => {
if (isOpenSidebar) {