Browse Source

refactor(admin-ui): Abstract default language to a function

Michael Bromley 7 years ago
parent
commit
5e28d027c8

+ 1 - 0
admin-ui/src/app/app.config.ts

@@ -1,3 +1,4 @@
 import { API_PORT } from '../../../shared/shared-constants';
 import { API_PORT } from '../../../shared/shared-constants';
 
 
 export const API_URL = `http://localhost:${API_PORT}`;
 export const API_URL = `http://localhost:${API_PORT}`;
+export const DEFAULT_LANGUAGE: LanguageCode = LanguageCode.en;

+ 2 - 2
admin-ui/src/app/app.module.ts

@@ -6,10 +6,10 @@ import { TranslateCompiler, TranslateLoader, TranslateModule } from '@ngx-transl
 import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
 import { TranslateMessageFormatCompiler } from 'ngx-translate-messageformat-compiler';
 import { AppComponent } from './app.component';
 import { AppComponent } from './app.component';
 import { routes } from './app.routes';
 import { routes } from './app.routes';
+import { getDefaultLanguage } from './common/utilities/get-default-language';
 import { CoreModule } from './core/core.module';
 import { CoreModule } from './core/core.module';
 import { CustomHttpTranslationLoader } from './core/providers/i18n/custom-http-loader';
 import { CustomHttpTranslationLoader } from './core/providers/i18n/custom-http-loader';
 import { DataService } from './data/providers/data.service';
 import { DataService } from './data/providers/data.service';
-import { LanguageCode } from './data/types/gql-generated-types';
 
 
 export function HttpLoaderFactory(http: HttpClient) {
 export function HttpLoaderFactory(http: HttpClient) {
     return new CustomHttpTranslationLoader(http, '/i18n-messages/');
     return new CustomHttpTranslationLoader(http, '/i18n-messages/');
@@ -38,6 +38,6 @@ export function HttpLoaderFactory(http: HttpClient) {
 export class AppModule {
 export class AppModule {
 
 
     constructor(private dataService: DataService) {
     constructor(private dataService: DataService) {
-        this.dataService.client.setUiLanguage(LanguageCode.en);
+        this.dataService.client.setUiLanguage(getDefaultLanguage());
     }
     }
 }
 }

+ 3 - 1
admin-ui/src/app/catalog/components/product-detail/product-detail.component.ts

@@ -3,6 +3,8 @@ import { FormBuilder, FormGroup, Validators } from '@angular/forms';
 import { ActivatedRoute, Router } from '@angular/router';
 import { ActivatedRoute, Router } from '@angular/router';
 import { combineLatest, Observable, Subject } from 'rxjs';
 import { combineLatest, Observable, Subject } from 'rxjs';
 import { map, take, takeUntil, tap } from 'rxjs/operators';
 import { map, take, takeUntil, tap } from 'rxjs/operators';
+
+import { getDefaultLanguage } from '../../../common/utilities/get-default-language';
 import { DataService } from '../../../data/providers/data.service';
 import { DataService } from '../../../data/providers/data.service';
 import { GetProductWithVariants_product, LanguageCode } from '../../../data/types/gql-generated-types';
 import { GetProductWithVariants_product, LanguageCode } from '../../../data/types/gql-generated-types';
 
 
@@ -32,7 +34,7 @@ export class ProductDetailComponent {
 
 
         this.languageCode$ = this.route.queryParamMap.pipe(
         this.languageCode$ = this.route.queryParamMap.pipe(
             map(qpm => qpm.get('lang')),
             map(qpm => qpm.get('lang')),
-            map(lang => !lang ? LanguageCode.en : lang as LanguageCode),
+            map(lang => !lang ? getDefaultLanguage() : lang as LanguageCode),
         );
         );
 
 
         this.availableLanguages$ = this.product$.pipe(
         this.availableLanguages$ = this.product$.pipe(

+ 6 - 0
admin-ui/src/app/common/utilities/get-default-language.ts

@@ -0,0 +1,6 @@
+import { DEFAULT_LANGUAGE } from '../../app.config';
+import { LanguageCode } from '../../data/types/gql-generated-types';
+
+export function getDefaultLanguage(): LanguageCode {
+    return DEFAULT_LANGUAGE;
+}

+ 3 - 1
admin-ui/src/app/core/providers/i18n/i18n.service.ts

@@ -1,11 +1,13 @@
 import { Injectable } from '@angular/core';
 import { Injectable } from '@angular/core';
 import { TranslateService } from '@ngx-translate/core';
 import { TranslateService } from '@ngx-translate/core';
+
+import { getDefaultLanguage } from '../../../common/utilities/get-default-language';
 import { LanguageCode } from '../../../data/types/gql-generated-types';
 import { LanguageCode } from '../../../data/types/gql-generated-types';
 
 
 @Injectable()
 @Injectable()
 export class I18nService {
 export class I18nService {
     constructor(private ngxTranslate: TranslateService) {
     constructor(private ngxTranslate: TranslateService) {
-        ngxTranslate.setDefaultLang(LanguageCode.en);
+        ngxTranslate.setDefaultLang(getDefaultLanguage());
     }
     }
 
 
     /**
     /**

+ 2 - 1
admin-ui/src/app/data/client-state/client-defaults.ts

@@ -1,3 +1,4 @@
+import { getDefaultLanguage } from '../../common/utilities/get-default-language';
 import { GetNetworkStatus, GetUiState, GetUserStatus, LanguageCode } from '../types/gql-generated-types';
 import { GetNetworkStatus, GetUiState, GetUserStatus, LanguageCode } from '../types/gql-generated-types';
 
 
 export const clientDefaults: GetNetworkStatus & GetUserStatus & GetUiState = {
 export const clientDefaults: GetNetworkStatus & GetUserStatus & GetUiState = {
@@ -12,7 +13,7 @@ export const clientDefaults: GetNetworkStatus & GetUserStatus & GetUiState = {
         __typename: 'UserStatus',
         __typename: 'UserStatus',
     },
     },
     uiState: {
     uiState: {
-        language: LanguageCode.en,
+        language: getDefaultLanguage(),
         __typename: 'UiState',
         __typename: 'UiState',
     },
     },
 };
 };

+ 5 - 3
admin-ui/src/app/data/providers/product-data.service.ts

@@ -1,6 +1,8 @@
 import { Observable } from 'rxjs';
 import { Observable } from 'rxjs';
-import { DeepPartial, ID } from '../../../../../shared/shared-types';
-import { UPDATE_PRODUCT } from '../mutations/product-mutations';
+
+import { ID } from '../../../../../shared/shared-types';
+import { getDefaultLanguage } from '../../common/utilities/get-default-language';
+import { CREATE_PRODUCT_OPTION_GROUP, UPDATE_PRODUCT } from '../mutations/product-mutations';
 import { GET_PRODUCT_LIST, GET_PRODUCT_WITH_VARIANTS } from '../queries/product-queries';
 import { GET_PRODUCT_LIST, GET_PRODUCT_WITH_VARIANTS } from '../queries/product-queries';
 import {
 import {
     GetProductList,
     GetProductList,
@@ -29,7 +31,7 @@ export class ProductDataService {
         const stringId = id.toString();
         const stringId = id.toString();
         return this.baseDataService.query<GetProductWithVariants, GetProductWithVariantsVariables>(GET_PRODUCT_WITH_VARIANTS, {
         return this.baseDataService.query<GetProductWithVariants, GetProductWithVariantsVariables>(GET_PRODUCT_WITH_VARIANTS, {
             id: stringId,
             id: stringId,
-            languageCode: LanguageCode.en,
+            languageCode: getDefaultLanguage(),
         });
         });
     }
     }