refactor: modify route guard pattern

This commit is contained in:
2026-06-19 18:36:05 +05:30
parent fffd8e3e12
commit 664d80809a
17 changed files with 224 additions and 60 deletions

View File

@@ -1,44 +0,0 @@
import { PERMISSIONS } from '@/constants/permissions';
import { ROUTES } from '@/utils/routes';
export type AppRoute = {
path: string;
permission?: string;
match?: 'exact' | 'prefix';
};
export const appRoutes: AppRoute[] = [
{
path: ROUTES.ROLES,
permission: PERMISSIONS.ROLE.READ,
},
{
path: ROUTES.USERS,
permission: PERMISSIONS.USER.READ,
},
{
path: ROUTES.CLIENTS,
permission: PERMISSIONS.CLIENT.READ,
},
{
path: ROUTES.PLANS,
permission: PERMISSIONS.PLAN.READ,
},
{
path: ROUTES.UPLOAD,
permission: PERMISSIONS.VIDEO.UPLOAD,
},
{
path: ROUTES.TICKET,
permission: PERMISSIONS.TICKET.READ,
match: 'prefix',
},
];
export function getRoutePermission(pathname: string) {
return appRoutes.find((route) =>
route.match === 'prefix'
? pathname === route.path || pathname.startsWith(`${route.path}/`)
: route.path === pathname,
)?.permission;
}

View File

@@ -47,16 +47,19 @@ export const menuItems: MenuItem[] = [
title: 'Project',
path: ROUTES.PROJECT,
icon: Layers,
permission: PERMISSIONS.PROJECT.READ,
},
{
title: 'Package',
path: ROUTES.PACKAGE,
icon: Package,
permission: PERMISSIONS.PACKAGE.READ,
},
{
title: 'Segment',
path: ROUTES.CHAINAGE,
icon: Milestone,
permission: PERMISSIONS.SEGMENT.READ,
},
{
title: 'Administration',