tambah menu sideBarMenu , middleware definepagemeta

This commit is contained in:
2025-07-10 12:06:56 +07:00
parent 1b05076317
commit c37759cc8f
16 changed files with 244 additions and 149 deletions

View File

@@ -1,47 +1,52 @@
import { useHakAksesStore } from '@/stores/sidebarMenuAkses/useMenuAksesStore'
import { mergeSidebar, mergeSidebarIcon } from '~/composables/sidebarMenu/mergeSidebar';
import { mergeSidebar, mergeSidebarIcon } from '~/utils/sidebarMenu/mergeSidebar';
import sidebarRole from "@/stores/rolePages"; // data dummy
import sidebarItems from '~/components/layout/full/vertical-sidebar/sidebarItem'; //sidebar static dari template
import MiniSideIcons from '~/components/layout/full/vertical-sidebar/MinIconItems';
export function useSidebarAccess(data: any) {
export function useSidebarAccess(dataUser : string) {
const akses = useHakAksesStore()
const sidebarMenu = shallowRef(sidebarItems);
const sidebarMiniSideIcons = shallowRef(MiniSideIcons);
const userRole = "admin";
//console.log('sidebarMenu', sidebarMenu.value);
//userRole = superadmin admin user
const userRole = dataUser;
const roleSidebarItems = sidebarRole.filter(item => item.role === userRole);
const mergedPages = mergeSidebar(sidebarMenu.value, roleSidebarItems[0].pages)
data = mergeSidebarIcon(sidebarMiniSideIcons.value, roleSidebarItems[0].pages)
console.log('mergedPages useSidebarAccess', mergedPages);
return data
//mergeSidebar (menu awal, menu role user)
const mergedPages = mergeSidebar(sidebarMenu.value, roleSidebarItems[0].pages)
//Merge Icon dari sidebarMenu api
let mergedIcons = null;
if (mergedPages !== null) {
//sidebarMiniSideIcons.value = mergedPages
//mergeSidebarIcon (icon awal, icon role user)
mergedIcons = mergeSidebarIcon(sidebarMiniSideIcons.value, mergedPages)
}else{
mergedIcons = sidebarMiniSideIcons.value
}
//console.log('mergedPages useSidebarAccess', mergedPages,mergedIcons);
//insert ke store Pinia
akses.setAccess({ role: userRole, pages: roleSidebarItems[0].pages, icons:mergedIcons })
akses.setMergedSidebar(mergedPages)
//console.log('tes masuk storeMenu', akses.$state)
const getPagesUser = akses.pageAccess
const getMergedPages = akses.mergedSidebar
const getMergedIcons = akses.iconItem
return {
getPagesUser,
getMergedPages,
getMergedIcons,
}
}
// export function useAccess() {
// const store = useHakAksesStore()
// const getRole = () => store.role
// const getPages = () => store.pageAccess
// const getPermissionsByPath = (path: string): string[] => {
// const match = store.pageAccess.find(p => p.path === path)
// return match?.permissions || []
// }
// return {
// getRole,
// getPages,
// getPermissionsByPath
// }
// }