X-Git-Url: https://git.immae.eu/?a=blobdiff_plain;f=client%2Fsrc%2Fapp%2Fapp.module.ts;h=dfdccbe69792a76efd59261111950e4ec6a85dba;hb=ac27887774e63d99f4e227fbe18846f143cc4b3c;hp=9f46d49a2e59c212f8217a6f8ba63477784ba7be;hpb=b1ed448e948211a59ab110c9d4c7c2e82819645e;p=github%2FChocobozzz%2FPeerTube.git diff --git a/client/src/app/app.module.ts b/client/src/app/app.module.ts index 9f46d49a2..dfdccbe69 100644 --- a/client/src/app/app.module.ts +++ b/client/src/app/app.module.ts @@ -1,13 +1,14 @@ import 'focus-visible' +import { tap } from 'rxjs/operators' import { environment } from 'src/environments/environment' import { APP_BASE_HREF, registerLocaleData } from '@angular/common' -import { NgModule } from '@angular/core' +import { APP_INITIALIZER, NgModule } from '@angular/core' import { BrowserModule } from '@angular/platform-browser' import { ServiceWorkerModule } from '@angular/service-worker' import localeOc from '@app/helpers/locales/oc' import { AppRoutingModule } from './app-routing.module' import { AppComponent } from './app.component' -import { CoreModule } from './core' +import { CoreModule, PluginService, ServerService } from './core' import { EmptyComponent } from './empty.component' import { HeaderComponent, SearchTypeaheadComponent, SuggestionComponent } from './header' import { HighlightPipe } from './header/highlight.pipe' @@ -26,6 +27,16 @@ import { SharedUserInterfaceSettingsModule } from './shared/shared-user-settings registerLocaleData(localeOc, 'oc') +export function loadConfigFactory (server: ServerService, pluginService: PluginService) { + return () => { + const result = server.loadHTMLConfig() + + if (result) return result.pipe(tap(() => pluginService.initializePlugins())) + + return pluginService.initializePlugins() + } +} + @NgModule({ bootstrap: [ AppComponent ], @@ -67,6 +78,12 @@ registerLocaleData(localeOc, 'oc') { provide: APP_BASE_HREF, useValue: '/' + }, + { + provide: APP_INITIALIZER, + useFactory: loadConfigFactory, + deps: [ ServerService, PluginService ], + multi: true } ] })