From 44be5f59e9ea7749e00e9689545a059ee049cc3c Mon Sep 17 00:00:00 2001 From: mehmet-erim Date: Wed, 21 Apr 2021 00:22:20 +0300 Subject: [PATCH] resolve route reloading twice problem --- .../src/lib/services/localization.service.ts | 19 +++---------------- 1 file changed, 3 insertions(+), 16 deletions(-) diff --git a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts index 42b2cc5373..5d06e7abe4 100644 --- a/npm/ng-packs/packages/core/src/lib/services/localization.service.ts +++ b/npm/ng-packs/packages/core/src/lib/services/localization.service.ts @@ -1,7 +1,6 @@ import { registerLocaleData } from '@angular/common'; import { Injectable, Injector, isDevMode, NgZone, Optional, SkipSelf } from '@angular/core'; -import { Router } from '@angular/router'; -import { noop, Observable, Subject } from 'rxjs'; +import { from, Observable, Subject } from 'rxjs'; import { filter, map, mapTo, switchMap, tap } from 'rxjs/operators'; import { ABP } from '../models/common'; import { Config } from '../models/config'; @@ -57,29 +56,17 @@ export class LocalizationService { .pipe(tap(res => this.configState.setState(res))) .pipe(mapTo(lang)), ), + switchMap(lang => from(this.registerLocale(lang).then(() => lang))), ) - .subscribe(lang => { - this.registerLocale(lang); - this._languageChange$.next(lang); - }); + .subscribe(lang => this._languageChange$.next(lang)); } registerLocale(locale: string) { - const router = this.injector.get(Router); - const { shouldReuseRoute } = router.routeReuseStrategy; - router.routeReuseStrategy.shouldReuseRoute = () => false; - router.navigated = false; - const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS); return registerLocaleFn(locale).then(module => { if (module?.default) registerLocaleData(module.default); this.latestLang = locale; - - this.ngZone.run(async () => { - await router.navigateByUrl(router.url).catch(noop); - router.routeReuseStrategy.shouldReuseRoute = shouldReuseRoute; - }); }); }