]> 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 191ae6974b230baa80eedfcae54fd1fd54c6edc6..7ca51f226df24bf37c0055e85743ce3b5b5498de 100644 (file)
@@ -1,15 +1,46 @@
 import { NgModule } from '@angular/core'
-import { Routes, RouterModule, PreloadAllModules } from '@angular/router'
+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'
   }
 ]
 
@@ -17,9 +48,15 @@ const routes: Routes = [
   imports: [
     RouterModule.forRoot(routes, {
       useHash: Boolean(history.pushState) === false,
-      preloadingStrategy: PreloadAllModules
+      scrollPositionRestoration: 'disabled',
+      preloadingStrategy: PreloadSelectedModulesList,
+      anchorScrolling: 'disabled'
     })
   ],
+  providers: [
+    PreloadSelectedModulesList,
+    { provide: RouteReuseStrategy, useClass: CustomReuseStrategy }
+  ],
   exports: [ RouterModule ]
 })
 export class AppRoutingModule {}