refactor: imprve the code quality

pull/6052/head
mehmet-erim 5 years ago
parent 21c1c2a576
commit c8d1517703

@ -9,6 +9,8 @@ export interface LocaleErrorHandlerData {
locale: string;
}
let localeMap = {};
export interface RegisterLocaleData {
cultureNameLocaleFileMap: Record<string, string>;
errorHandlerFn: (data: LocaleErrorHandlerData) => any;
@ -21,27 +23,22 @@ export function registerLocale(
} = {} as RegisterLocaleData,
) {
return (locale: string): Promise<any> => {
cultureNameLocaleFileMap = { ...differentLocales, ...cultureNameLocaleFileMap };
localeMap = { ...differentLocales, ...cultureNameLocaleFileMap };
return new Promise((resolve, reject) => {
return import(
/* webpackChunkName: "_locale-[request]"*/
/* webpackInclude: /[/\\](ar|cs|en|fr|pt|tr|ru|hu|sl|zh-Hans|zh-Hant).js/ */
/* webpackExclude: /[/\\]global|extra/ */
`@angular/common/locales/${cultureNameLocaleFileMap[locale] || locale}.js`
)
.then(module => {
registerLocaleData(module.default, locale);
resolve(module.default);
})
.catch(error => {
errorHandlerFn({
resolve,
reject,
error,
locale,
});
`@angular/common/locales/${localeMap[locale] || locale}.js`
).catch(error => {
errorHandlerFn({
resolve,
reject,
error,
locale,
});
});
});
};
}
@ -53,8 +50,7 @@ export function storeLocaleData(data: any, localeId: string) {
export async function defaultLocalErrorHandlerFn({ locale, resolve }: LocaleErrorHandlerData) {
if (extraLocales[locale]) {
registerLocaleData(extraLocales[locale], locale);
resolve();
resolve({ default: extraLocales[localeMap[locale] || locale] });
return;
}

@ -1,3 +1,4 @@
import { registerLocaleData } from '@angular/common';
import { Injectable, Injector, NgZone, Optional, SkipSelf } from '@angular/core';
import { ActivatedRouteSnapshot, Router } from '@angular/router';
import { Actions, ofActionSuccessful, Store } from '@ngxs/store';
@ -54,7 +55,9 @@ export class LocalizationService {
const { registerLocaleFn }: ABP.Root = this.injector.get(CORE_OPTIONS);
return registerLocaleFn(locale).then(() => {
return registerLocaleFn(locale).then(module => {
if (module?.default) registerLocaleData(module.default);
this.ngZone.run(async () => {
await router.navigateByUrl(router.url).catch(noop);
router.routeReuseStrategy.shouldReuseRoute = shouldReuseRoute;

@ -1,3 +1,4 @@
import { registerLocaleData } from '@angular/common';
import { Injector } from '@angular/core';
import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
@ -46,7 +47,11 @@ export function localeInitializer(injector: Injector) {
const lang = store.selectSnapshot(state => state.SessionState.language) || 'en';
return new Promise((resolve, reject) => {
registerLocaleFn(lang).then(() => resolve('resolved'), reject);
registerLocaleFn(lang).then(module => {
if (module?.default) registerLocaleData(module.default);
return resolve('resolved');
}, reject);
});
};

Loading…
Cancel
Save