import { useRoute } from "vue-router"; import { useSidebarAccess } from "~/composables/sidebarMenu/useSidebarAkses"; import { useHakAksesStore } from "@/stores/sidebarMenuAkses/useMenuAksesStore"; import type { PageAccess } from "~/types/menuAkses/access"; export const useAccess = (pageRoute: string, userRole: string) => { //const route = useRoute(); const getRole = userRole; //const meta = route.path; //halaman yang sedang diakses const meta = pageRoute; // const getPermissions = ['view'] // belum ambil data const aksesMenu = useHakAksesStore(); //untuk merge akses menu dan akses ke store if (!aksesMenu.role && aksesMenu.mergedSidebar.length === 0) { //console.log("masuk useSidebarAccess kosong", aksesMenu.$state); try { const getMenuStore = useSidebarAccess(getRole); } catch (error) { console.log(error); } } //console.log("masuk useSidebarAccess", aksesMenu.$state); const getPagesUser = aksesMenu.pageAccess; const getMergedPages = aksesMenu.mergedSidebar; console.log("route dari useAccess", meta); //console.log("mergerpage", getMergedPages);meta masih salah //mencari permision per page const cariPage: PageAccess[] = getPagesUser; let getPermisionPage = null; //console.log('cariPage', cariPage); if (cariPage.length > 0) { const found = cariPage.find((p) => p.path === meta); //console.log("permisionPage", found); if (found?.permissions) { getPermisionPage = found.permissions; } } //set permission ke pinia aksesMenu.setPermissionPage(getPermisionPage); return { getRole, // role getPagesUser, // akses menu per role getMergedPages, // hasil merge akses menu getPermisionPage, // permission per page }; };