]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blobdiff - client/src/app/app-routing.module.ts
WIP plugins: add theme support
[github/Chocobozzz/PeerTube.git] / client / src / app / app-routing.module.ts
index f9465dc9c4ed39bccf7fd56b13d2f8990e2076d8..7ca51f226df24bf37c0055e85743ce3b5b5498de 100644 (file)
@@ -1,21 +1,62 @@
-import { NgModule } from '@angular/core';
-import { Routes, RouterModule } from '@angular/router';
+import { NgModule } from '@angular/core'
+import { RouteReuseStrategy, RouterModule, Routes } from '@angular/router'
+
+import { PreloadSelectedModulesList } from './core'
+import { AppComponent } from '@app/app.component'
+import { CustomReuseStrategy } from '@app/core/routing/custom-reuse-strategy'
 
 const routes: Routes = [
+  {
+    path: 'admin',
+    loadChildren: './+admin/admin.module#AdminModule'
+  },
+  {
+    path: 'my-account',
+    loadChildren: './+my-account/my-account.module#MyAccountModule'
+  },
+  {
+    path: 'verify-account',
+    loadChildren: './+signup/+verify-account/verify-account.module#VerifyAccountModule'
+  },
+  {
+    path: 'accounts',
+    loadChildren: './+accounts/accounts.module#AccountsModule'
+  },
+  {
+    path: 'video-channels',
+    loadChildren: './+video-channels/video-channels.module#VideoChannelsModule'
+  },
+  {
+    path: 'about',
+    loadChildren: './+about/about.module#AboutModule'
+  },
+  {
+    path: 'signup',
+    loadChildren: './+signup/+register/register.module#RegisterModule'
+  },
   {
     path: '',
-    redirectTo: '/videos/list',
-    pathMatch: 'full'
+    component: AppComponent // Avoid 404, app component will redirect dynamically
   },
   {
-    path: 'admin',
-    loadChildren: './+admin#AdminModule'
+    path: '**',
+    loadChildren: './+page-not-found/page-not-found.module#PageNotFoundModule'
   }
-];
+]
 
 @NgModule({
-  imports: [ RouterModule.forRoot(routes) ],
+  imports: [
+    RouterModule.forRoot(routes, {
+      useHash: Boolean(history.pushState) === false,
+      scrollPositionRestoration: 'disabled',
+      preloadingStrategy: PreloadSelectedModulesList,
+      anchorScrolling: 'disabled'
+    })
+  ],
+  providers: [
+    PreloadSelectedModulesList,
+    { provide: RouteReuseStrategy, useClass: CustomReuseStrategy }
+  ],
   exports: [ RouterModule ]
 })
 export class AppRoutingModule {}
-