X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fapp-routing.module.ts;h=bcae29c9a3e962087308c33cbd2d034082a7d4c3;hb=07098c33df3f5e00c2a150d3025abb779d0edb6c;hp=2ee3cf97436b00e45f3f489a07f27472001d3f56;hpb=ae5a3dd6642c8d5abc87b874496026dc9ed37d2d;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/app-routing.module.ts b/client/src/app/app-routing.module.ts index 2ee3cf974..bcae29c9a 100644 --- a/client/src/app/app-routing.module.ts +++ b/client/src/app/app-routing.module.ts @@ -1,24 +1,94 @@ import { NgModule } from '@angular/core' -import { RouterModule, Routes } from '@angular/router' - +import { RouteReuseStrategy, RouterModule, Routes } from '@angular/router' +import { CustomReuseStrategy } from '@app/core/routing/custom-reuse-strategy' +import { MenuGuards } from '@app/core/routing/menu-guard.service' import { PreloadSelectedModulesList } from './core' +import { EmptyComponent } from './empty.component' +import { POSSIBLE_LOCALES } from '@shared/core-utils/i18n' const routes: Routes = [ { path: 'admin', - loadChildren: './+admin/admin.module#AdminModule' + canActivate: [ MenuGuards.close() ], + canDeactivate: [ MenuGuards.open() ], + loadChildren: () => import('./+admin/admin.module').then(m => m.AdminModule) + }, + { + path: 'my-account', + loadChildren: () => import('./+my-account/my-account.module').then(m => m.MyAccountModule) + }, + { + path: 'my-library', + loadChildren: () => import('./+my-library/my-library.module').then(m => m.MyLibraryModule) + }, + { + path: 'verify-account', + loadChildren: () => import('./+signup/+verify-account/verify-account.module').then(m => m.VerifyAccountModule) + }, + { + path: 'accounts', + loadChildren: () => import('./+accounts/accounts.module').then(m => m.AccountsModule) + }, + { + path: 'video-channels', + loadChildren: () => import('./+video-channels/video-channels.module').then(m => m.VideoChannelsModule) + }, + { + path: 'about', + loadChildren: () => import('./+about/about.module').then(m => m.AboutModule) + }, + { + path: 'signup', + loadChildren: () => import('./+signup/+register/register.module').then(m => m.RegisterModule) + }, + { + path: 'reset-password', + loadChildren: () => import('./+reset-password/reset-password.module').then(m => m.ResetPasswordModule) + }, + { + path: 'login', + loadChildren: () => import('./+login/login.module').then(m => m.LoginModule) + }, + { + path: 'search', + loadChildren: () => import('./+search/search.module').then(m => m.SearchModule) + }, + { + path: 'videos', + loadChildren: () => import('./+videos/videos.module').then(m => m.VideosModule) + }, + { + path: '', + component: EmptyComponent // Avoid 404, app component will redirect dynamically } ] +// Avoid 404 when changing language +for (const locale of POSSIBLE_LOCALES) { + routes.push({ + path: locale, + component: EmptyComponent + }) +} + +routes.push({ + path: '**', + loadChildren: () => import('./+page-not-found/page-not-found.module').then(m => m.PageNotFoundModule) +}) + @NgModule({ imports: [ RouterModule.forRoot(routes, { useHash: Boolean(history.pushState) === false, - preloadingStrategy: PreloadSelectedModulesList + scrollPositionRestoration: 'disabled', + preloadingStrategy: PreloadSelectedModulesList, + anchorScrolling: 'disabled' }) ], providers: [ - PreloadSelectedModulesList + MenuGuards.guards, + PreloadSelectedModulesList, + { provide: RouteReuseStrategy, useClass: CustomReuseStrategy } ], exports: [ RouterModule ] })