75 lines
2.4 KiB
TypeScript
75 lines
2.4 KiB
TypeScript
import { AuthErrorComponent } from '@components/auth-error/auth-error.component';
|
|
import { AuthGuard } from './modules/auth/auth.guard';
|
|
import { CompositeRouteGuard } from '@iqser/common-ui';
|
|
import { RedRoleGuard } from './modules/auth/red-role.guard';
|
|
import { BaseScreenComponent } from '@components/base-screen/base-screen.component';
|
|
import { RouteReuseStrategy, RouterModule } from '@angular/router';
|
|
import { NgModule } from '@angular/core';
|
|
import { DownloadsListScreenComponent } from '@components/downloads-list-screen/downloads-list-screen.component';
|
|
import { AppStateGuard } from '@state/app-state.guard';
|
|
import { UserProfileScreenComponent } from '@components/user-profile/user-profile-screen.component';
|
|
import { CustomRouteReuseStrategy } from '@utils/custom-route-reuse.strategy';
|
|
|
|
const routes = [
|
|
{
|
|
path: '',
|
|
redirectTo: 'main/dossiers',
|
|
pathMatch: 'full'
|
|
},
|
|
{
|
|
path: 'auth-error',
|
|
component: AuthErrorComponent,
|
|
canActivate: [AuthGuard]
|
|
},
|
|
{
|
|
path: 'main/my-profile',
|
|
component: BaseScreenComponent,
|
|
children: [
|
|
{
|
|
path: '',
|
|
component: UserProfileScreenComponent
|
|
}
|
|
],
|
|
canActivate: [CompositeRouteGuard],
|
|
data: {
|
|
routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard]
|
|
}
|
|
},
|
|
{
|
|
path: 'main/admin',
|
|
component: BaseScreenComponent,
|
|
loadChildren: () => import('./modules/admin/admin.module').then(m => m.AdminModule)
|
|
},
|
|
{
|
|
path: 'main/dossiers',
|
|
component: BaseScreenComponent,
|
|
loadChildren: () => import('./modules/dossier/dossiers.module').then(m => m.DossiersModule)
|
|
},
|
|
{
|
|
path: 'main/downloads',
|
|
component: BaseScreenComponent,
|
|
children: [
|
|
{
|
|
path: '',
|
|
component: DownloadsListScreenComponent
|
|
}
|
|
],
|
|
canActivate: [CompositeRouteGuard],
|
|
data: {
|
|
routeGuards: [AuthGuard, RedRoleGuard, AppStateGuard]
|
|
}
|
|
},
|
|
{
|
|
path: '**',
|
|
redirectTo: 'main/dossiers',
|
|
pathMatch: 'full'
|
|
}
|
|
];
|
|
|
|
@NgModule({
|
|
imports: [RouterModule.forRoot(routes, { scrollPositionRestoration: 'enabled' })],
|
|
providers: [{ provide: RouteReuseStrategy, useClass: CustomRouteReuseStrategy }],
|
|
exports: [RouterModule]
|
|
})
|
|
export class AppRoutingModule {}
|