import type { Permission } from '~/models/role' export function usePageChecker() { const route = useRoute() const { checkRole, hasCreateAccess, hasReadAccess, hasUpdateAccess, hasDeleteAccess } = useRBAC() function getRouteTitle() { return route.meta.title as string } function getParamsId() { const id = route.params.id return typeof id === 'string' ? parseInt(id) : 0 } function getPageAccess( roleAccess: Record, type: 'create' | 'read' | 'update' | 'delete', ) { // Check if user has access to this page, need to use try - catch for proper handling const hasAccess = checkRole(roleAccess) if (!hasAccess) return false // Define permission-based computed properties switch (type) { case 'create': return hasCreateAccess(roleAccess) case 'read': return hasReadAccess(roleAccess) case 'update': return hasUpdateAccess(roleAccess) case 'delete': return hasDeleteAccess(roleAccess) default: return false } } return { checkRole, hasCreateAccess, hasReadAccess, hasUpdateAccess, hasDeleteAccess, getRouteTitle, getParamsId, getPageAccess } }