Skip to content

Commit

Permalink
fix: async translation loading issue
Browse files Browse the repository at this point in the history
  • Loading branch information
iChip committed May 29, 2024
1 parent bc7587c commit 60d3e13
Show file tree
Hide file tree
Showing 6 changed files with 64 additions and 40 deletions.
15 changes: 10 additions & 5 deletions projects/angular-sdk/src/angular-sdk.module.ts
Original file line number Diff line number Diff line change
Expand Up @@ -2,10 +2,7 @@ import { NgModule } from '@angular/core';

import { FlexLayoutModule } from '@angular/flex-layout';
import { HttpClientModule } from '@angular/common/http';
import {
CommonModule,
DecimalPipe,
} from '@angular/common';
import { CommonModule, DecimalPipe, registerLocaleData } from '@angular/common';

import { TranslateModule } from '@ngx-translate/core';

Expand Down Expand Up @@ -36,14 +33,22 @@ import { HopperEventsService } from './services/hopper-events.service';
import { GlobalEventComponent } from './components/global-event.component';
import { LoggerService } from './services/logger.service';

import localeFr from '@angular/common/locales/fr';
import localeEn from '@angular/common/locales/en';
import localeZh from '@angular/common/locales/zh';

registerLocaleData(localeFr, 'fr');
registerLocaleData(localeEn, 'en');
registerLocaleData(localeZh, 'zh');

@NgModule({
declarations: [
// Component
GlobalComponent,
GlobalEventComponent,
CfarOfferBannerComponent,
CfarOfferBannerLargeComponent,
CfarOfferDialogComponent
CfarOfferDialogComponent,
],
imports: [
// Angular Module
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -137,7 +137,7 @@ export class CfarOfferBannerComponent
}
},
error: (error) => {
console.error(error);
this._loggerService.error('failed to close dialog', {}, error);
},
});
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -246,7 +246,11 @@ export class CfarOfferDialogComponent
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error(
'failed to send offer takeover display event',
{},
error,
);
},
});
}
Expand All @@ -266,7 +270,7 @@ export class CfarOfferDialogComponent
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error('failed to send t&c event', {}, error);
},
});
}
Expand All @@ -286,7 +290,11 @@ export class CfarOfferDialogComponent
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error(
'failed to send deny purchase event',
{},
error,
);
},
});
}
Expand Down
25 changes: 17 additions & 8 deletions projects/angular-sdk/src/components/global-event.component.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,6 @@
import { ChangeDetectorRef, Directive } from '@angular/core';
import { TranslateService } from '@ngx-translate/core';
import {
UiSource,
UiVariant,
} from '../apis/hopper-cloud-airline/v1';
import { UiSource, UiVariant } from '../apis/hopper-cloud-airline/v1';
import { take } from 'rxjs/operators';
import { GlobalComponent } from './global.component';
import { HopperEventsService } from '../services/hopper-events.service';
Expand Down Expand Up @@ -78,7 +75,11 @@ export class GlobalEventComponent extends GlobalComponent {
}
},
error: (error) => {
console.error(error);
this._loggerService.error(
'failed to send banner display event',
{},
error,
);
},
});
}
Expand All @@ -97,7 +98,11 @@ export class GlobalEventComponent extends GlobalComponent {
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error(
'failed to send warning message event',
{},
error,
);
},
});
}
Expand All @@ -117,7 +122,7 @@ export class GlobalEventComponent extends GlobalComponent {
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error('failed to send t&c event', {}, error);
},
});
}
Expand All @@ -137,7 +142,11 @@ export class GlobalEventComponent extends GlobalComponent {
.subscribe({
next: () => {},
error: (error) => {
console.error(error);
this._loggerService.error(
'failed to send deny purchase event',
{},
error,
);
},
});
}
Expand Down
18 changes: 6 additions & 12 deletions projects/angular-sdk/src/components/global.component.ts
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,6 @@ import { Error } from '../apis/hopper-cloud-airline/v1';
import { ErrorSdkModel } from '../models';
import { LoggerService } from '../services/logger.service';
import { ErrorCode } from '../enums/error-code.enum';
import { registerLocaleData } from '@angular/common';

@Directive({
selector: '[HopperGlobalComponent]',
Expand Down Expand Up @@ -69,6 +68,7 @@ export class GlobalComponent implements OnChanges {

ngOnInit(): void {
this._loggerService.setEnv(this.env);
this._loggerService.info('sdk initialized');
}

ngOnChanges(changes: SimpleChanges): void {
Expand All @@ -93,13 +93,6 @@ export class GlobalComponent implements OnChanges {
protected _updateLanguage(newLanguage: string): void {
// Set language for components
this._translateService.use(newLanguage);

import(
/* webpackExclude: /\.d\.ts$/ */
/* webpackMode: "lazy-once" */
/* webpackChunkName: "i18n-extra" */
`@/../node_modules/@angular/common/locales/${newLanguage}.mjs`
).then(module => registerLocaleData(module.default));
}

protected _getHcAirlinesErrorResponse(
Expand All @@ -115,7 +108,6 @@ export class GlobalComponent implements OnChanges {
mainApiError.code || ErrorCode.RF009,
);
} else {
console.error(apiError);
return HcAirlinesError.buildDefault();
}
}
Expand All @@ -142,7 +134,8 @@ export class GlobalComponent implements OnChanges {
};
}

protected _fakeCfarContractId: string = '1ecf85ab-211f-68b7-9bb3-4b1a314f1a42';
protected _fakeCfarContractId: string =
'1ecf85ab-211f-68b7-9bb3-4b1a314f1a42';

protected _buildFakePostCfarOffersResponse(): CfarOfferCustomer[] {
return [
Expand Down Expand Up @@ -374,7 +367,7 @@ export class GlobalComponent implements OnChanges {
premium: '10.00',
};
}

// -----------------------------------------------
// Public Methods
// -----------------------------------------------
Expand All @@ -397,8 +390,9 @@ export class GlobalComponent implements OnChanges {
// Errors
// *********************

public handleApiError(error: any, errorEndPoint: string) {
public handleApiError(error: HttpErrorResponse, errorEndPoint: string) {
const builtError = this._getHcAirlinesErrorResponse(error);
this._loggerService.error(error.message, {}, error);

if (builtError !== null) {
this.errorCode = builtError.code;
Expand Down
30 changes: 19 additions & 11 deletions projects/angular-sdk/src/services/logger.service.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,11 @@
import { Injectable } from '@angular/core';
import { HandlerType, datadogLogs as datadog } from '@datadog/browser-logs';
import {
HandlerType,
Logger,
datadogLogs as datadog,
} from '@datadog/browser-logs';

import packageFile from '../../package.json';

@Injectable()
export class LoggerService {
Expand All @@ -9,12 +15,13 @@ export class LoggerService {

constructor() {
const _initConfig = {
clientToken: 'pubf78a0a6e00c46c5f03f09a96e79bb939',
site: 'datadoghq.com',
clientToken: 'pubc1227a869b47ba8b221db32fc8caacfc',
site: 'us5.datadoghq.com',
service: 'hts-airlines-angular-sdk',
forwardErrorsToLogs: true,
sessionSampleRate: 100,
silentMultipleInit: true,
version: packageFile.version,
};

datadog.init(_initConfig);
Expand All @@ -37,23 +44,24 @@ export class LoggerService {

public setEnv(env?: string): void {
this._env = env ? env : 'production';
datadog.setGlobalContext({ env: this._env });
this._context.data.jsonPayload.env = env;
this._logger.setContext(this._context);
this._logger.setHandler(
this._env === 'production' ? HandlerType.http : HandlerType.console,
this._env === 'production'
? HandlerType.http
: [HandlerType.http, HandlerType.console],
);
}

public info(message: string): void {
this._logger.info(message);
public info(...params: Parameters<Logger['info']>) {
this._logger.info(...params);
}

public warn(message: string): void {
this._logger.warn(message);
public warn(...params: Parameters<Logger['warn']>) {
this._logger.warn(...params);
}

public error(message: string): void {
this._logger.error(message);
public error(...params: Parameters<Logger['error']>): void {
this._logger.error(...params);
}
}

0 comments on commit 60d3e13

Please sign in to comment.