refactor: modify route guard pattern
This commit is contained in:
@@ -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;
|
||||
}
|
||||
@@ -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',
|
||||
|
||||
Reference in New Issue
Block a user