import { NgModule } from '@angular/core';

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

import { UCAP_NATIVE_SERVICE, NativeService } from '@ucap-webmessenger/native';

export async function createTranslateLoader(nativeService: NativeService) {
  // tslint:disable-next-line: variable-name
  let _TranslateLoader;
  _TranslateLoader = await import('@ucap-webmessenger/native-browser').then(
    m => m.TranslateBrowserLoader
  );
  _TranslateLoader = await import('@ucap-webmessenger/native-electron').then(
    m => m.TranslateElectronLoader
  );

  // return new TranslateBrowserLoader(nativeService, './assets/i18n/', '.json');
  return new _TranslateLoader(nativeService, './assets/i18n/', '.json');
}

@NgModule({
  imports: [
    TranslateModule.forRoot({
      loader: {
        provide: TranslateLoader,
        useFactory: createTranslateLoader,
        deps: [UCAP_NATIVE_SERVICE]
      }
    })
  ],
  exports: []
})
export class AppTranslateModule {}
