Browse Source

chore: remove registerLocale from initial-utils.ts

pull/6052/head
mehmet-erim 6 years ago
parent
commit
84b8c14585
  1. 62
      npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

62
npm/ng-packs/packages/core/src/lib/utils/initial-utils.ts

@ -1,5 +1,4 @@
import { registerLocaleData } from '@angular/common';
import { Injector, isDevMode } from '@angular/core';
import { Injector } from '@angular/core';
import { Store } from '@ngxs/store';
import { OAuthService } from 'angular-oauth2-oidc';
import { tap } from 'rxjs/operators';
@ -8,7 +7,6 @@ import { ABP } from '../models/common';
import { AuthService } from '../services/auth.service';
import { ConfigState } from '../states/config.state';
import { clearOAuthStorage } from '../strategies/auth-flow.strategy';
import { LocaleErrorHandlerData, LOCALE_ERROR_HANDLER } from '../tokens/locale-error-handler.token';
import { CORE_OPTIONS } from '../tokens/options.token';
import { getRemoteEnv } from './environment-utils';
import { parseTenantFromUrl } from './multi-tenancy-utils';
@ -43,68 +41,14 @@ export function checkAccessToken(store: Store, injector: Injector) {
export function localeInitializer(injector: Injector) {
const fn = () => {
const store: Store = injector.get(Store);
const { registerLocaleFn }: ABP.Root = injector.get(CORE_OPTIONS);
const lang = store.selectSnapshot(state => state.SessionState.language) || 'en';
return new Promise((resolve, reject) => {
registerLocale(lang, injector).then(() => resolve('resolved'), reject);
registerLocaleFn(lang, injector).then(() => resolve('resolved'), reject);
});
};
return fn;
}
export function registerLocale(locale: string, injector: Injector): Promise<any> {
const { cultureNameLocaleFileMap } = injector.get(CORE_OPTIONS, {} as ABP.Root);
const errorHandlerFn = injector.get(LOCALE_ERROR_HANDLER, defaultLocalErrorHandlerFn);
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,
injector,
locale,
storedLocales: { ...extraLocales },
});
});
});
}
const extraLocales = {};
export function storeLocaleData(data: any, localeId: string) {
extraLocales[localeId] = data;
}
async function defaultLocalErrorHandlerFn({
locale,
storedLocales,
resolve,
injector,
}: LocaleErrorHandlerData) {
if (storedLocales[locale]) {
registerLocaleData(storedLocales[locale], locale);
resolve();
return;
}
if (isDevMode) {
console.error(
`Cannot find the ${locale} locale file. You can check how can add new culture at https://docs.abp.io/en/abp/latest/UI/Angular/Localization#adding-new-culture`,
);
}
resolve();
}

Loading…
Cancel
Save