Browse Source

fix(core): set language when call app config api

pull/3942/head
mehmet-erim 6 years ago
parent
commit
d22ba8a919
  1. 2
      npm/ng-packs/packages/core/src/lib/actions/session.actions.ts
  2. 7
      npm/ng-packs/packages/core/src/lib/services/localization.service.ts
  3. 6
      npm/ng-packs/packages/core/src/lib/states/config.state.ts
  4. 7
      npm/ng-packs/packages/core/src/lib/states/session.state.ts

2
npm/ng-packs/packages/core/src/lib/actions/session.actions.ts

@ -2,7 +2,7 @@ import { ABP } from '../models';
export class SetLanguage { export class SetLanguage {
static readonly type = '[Session] Set Language'; static readonly type = '[Session] Set Language';
constructor(public payload: string) {} constructor(public payload: string, public dispatchAppConfiguration?: boolean) {}
} }
export class SetTenant { export class SetTenant {
static readonly type = '[Session] Set Tenant'; static readonly type = '[Session] Set Tenant';

7
npm/ng-packs/packages/core/src/lib/services/localization.service.ts

@ -33,10 +33,9 @@ export class LocalizationService {
} }
private listenToSetLanguage() { private listenToSetLanguage() {
this.actions.pipe(ofActionSuccessful(SetLanguage)).subscribe(({ payload }) => { this.actions
this.registerLocale(payload); .pipe(ofActionSuccessful(SetLanguage))
document.documentElement.lang = payload; .subscribe(({ payload }) => this.registerLocale(payload));
});
} }
setRouteReuse(reuse: ShouldReuseRoute) { setRouteReuse(reuse: ShouldReuseRoute) {

6
npm/ng-packs/packages/core/src/lib/states/config.state.ts

@ -219,9 +219,13 @@ export class ConfigState {
defaultLang = defaultLang.split(';')[0]; defaultLang = defaultLang.split(';')[0];
} }
document.documentElement.setAttribute(
'lang',
configuration.localization.currentCulture.cultureName,
);
return this.store.selectSnapshot(SessionState.getLanguage) return this.store.selectSnapshot(SessionState.getLanguage)
? of(null) ? of(null)
: dispatch(new SetLanguage(defaultLang)); : dispatch(new SetLanguage(defaultLang, false));
}), }),
catchError(err => { catchError(err => {
dispatch(new RestOccurError(new HttpErrorResponse({ status: 0, error: err }))); dispatch(new RestOccurError(new HttpErrorResponse({ status: 0, error: err })));

7
npm/ng-packs/packages/core/src/lib/states/session.state.ts

@ -69,12 +69,15 @@ export class SessionState {
} }
@Action(SetLanguage) @Action(SetLanguage)
setLanguage({ patchState, dispatch }: StateContext<Session.State>, { payload }: SetLanguage) { setLanguage(
{ patchState, dispatch }: StateContext<Session.State>,
{ payload, dispatchAppConfiguration = true }: SetLanguage,
) {
patchState({ patchState({
language: payload, language: payload,
}); });
return dispatch(new GetAppConfiguration()); if (dispatchAppConfiguration) return dispatch(new GetAppConfiguration());
} }
@Action(SetTenant) @Action(SetTenant)

Loading…
Cancel
Save