Advertisement
Guest User

Untitled

a guest
Jul 17th, 2019
102
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.77 KB | None | 0 0
  1. /* tslint:disable:max-line-length */
  2. import {APP_INITIALIZER, Injector, NgModule} from '@angular/core';
  3. import { Routes, RouterModule } from '@angular/router';
  4. import {LocalizeParser, LocalizeRouterModule, LocalizeRouterService, LocalizeRouterSettings, ManualParserLoader} from 'localize-router';
  5. import {TranslateLoader, TranslateModule, TranslateService} from '@ngx-translate/core';
  6. import {HttpClient} from '@angular/common/http';
  7. import {Location} from '@angular/common';
  8. import {CustomTranslateLoader} from '@app/classes/translate-loader';
  9. import {AuthGuard} from '@app/modules/auth/services/auth.guard';
  10.  
  11. export function initLanguage(injector: Injector): () => void {
  12. return (): Promise<any> =>
  13. new Promise((resolve) => {
  14. injector.get(LocalizeRouterService).init();
  15. resolve();
  16. });
  17. }
  18.  
  19. const routes: Routes = [
  20. {path: 'list', loadChildren: () => import('src/app/modules/asset-list/asset-list.module')
  21. .then(m => m.AssetListModule), canActivate: [AuthGuard]},
  22. {path: 'asset', loadChildren: () => import('src/app/modules/asset-view/asset-view.module').then(m => m.AssetViewModule)},
  23. {path: 'profile', loadChildren: () => import('src/app/modules/profile/profile.module').then(m => m.ProfileModule)},
  24. {path: 'deals', loadChildren: () => import('src/app/modules/deals/deals.module').then(m => m.DealsModule)},
  25. {path: '', loadChildren: () => import('src/app/modules/asset-preview/asset-preview.module').then(m => m.AssetPreviewModule)},
  26. {path: '**', loadChildren: () => import('src/app/modules/not-found-page-module/not-found-page.module').then(m => m.NotFoundPageModule)}
  27. ];
  28.  
  29. export function LoaderFactory(http: HttpClient) {
  30. return new CustomTranslateLoader(http);
  31. }
  32.  
  33. export function CreateTranslateLoader(translate: TranslateService, location: Location, settings: LocalizeRouterSettings) {
  34. return new ManualParserLoader(translate, location, settings, ['en', 'ru'], 'ROUTES.');
  35. }
  36.  
  37. @NgModule({
  38. imports: [
  39. RouterModule.forRoot(routes, {
  40. scrollPositionRestoration: 'enabled',
  41. anchorScrolling: 'enabled',
  42. initialNavigation: 'enabled'
  43. }),
  44. LocalizeRouterModule.forRoot(routes, {
  45. parser: {
  46. provide: LocalizeParser,
  47. useFactory: CreateTranslateLoader,
  48. deps: [TranslateService, Location, LocalizeRouterSettings]
  49. }
  50. }),
  51. TranslateModule.forRoot({
  52. loader: {
  53. provide: TranslateLoader,
  54. useFactory: LoaderFactory,
  55. deps: [HttpClient]
  56. }
  57. })
  58. ],
  59. exports: [
  60. RouterModule,
  61. TranslateModule,
  62. LocalizeRouterModule
  63. ],
  64. providers: [
  65. AuthGuard,
  66. {
  67. provide: APP_INITIALIZER,
  68. useFactory: initLanguage,
  69. multi: true,
  70. deps: [Injector]
  71. }
  72. ]
  73. })
  74. export class AppRoutingModule { }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement