]> git.immae.eu Git - github/Chocobozzz/PeerTube.git/blame - client/src/app/app.module.ts
Translated using Weblate (Persian)
[github/Chocobozzz/PeerTube.git] / client / src / app / app.module.ts
CommitLineData
67ed6552 1import 'focus-visible'
fc21ef5c 2import { tap } from 'rxjs/operators'
1d22d251 3import { environment } from 'src/environments/environment'
67ed6552 4import { APP_BASE_HREF, registerLocaleData } from '@angular/common'
8e08d415 5import { APP_INITIALIZER, NgModule } from '@angular/core'
df98563e 6import { BrowserModule } from '@angular/platform-browser'
1d22d251 7import { ServiceWorkerModule } from '@angular/service-worker'
67ed6552 8import localeOc from '@app/helpers/locales/oc'
df98563e
C
9import { AppRoutingModule } from './app-routing.module'
10import { AppComponent } from './app.component'
15825ef1 11import { CoreModule, PluginService, RedirectService, ServerService } from './core'
f0b56fdd 12import { EmptyComponent } from './empty.component'
5fb2e288 13import { HeaderComponent, SearchTypeaheadComponent, SuggestionComponent } from './header'
1942f11d 14import { HighlightPipe } from './header/highlight.pipe'
1d22d251 15import { LanguageChooserComponent, MenuComponent, NotificationComponent } from './menu'
67ed6552
C
16import { ConfirmComponent } from './modal/confirm.component'
17import { CustomModalComponent } from './modal/custom-modal.component'
18import { InstanceConfigWarningModalComponent } from './modal/instance-config-warning-modal.component'
19import { QuickSettingsModalComponent } from './modal/quick-settings-modal.component'
8f581725
C
20import { AdminWelcomeModalComponent } from './modal/admin-welcome-modal.component'
21import { AccountSetupWarningModalComponent } from './modal/account-setup-warning-modal.component'
0f01a8ba 22import { SharedActorImageModule } from './shared/shared-actor-image/shared-actor-image.module'
67ed6552
C
23import { SharedFormModule } from './shared/shared-forms'
24import { SharedGlobalIconModule } from './shared/shared-icons'
25import { SharedInstanceModule } from './shared/shared-instance'
26import { SharedMainModule } from './shared/shared-main'
27import { SharedUserInterfaceSettingsModule } from './shared/shared-user-settings'
2a39506c
C
28
29registerLocaleData(localeOc, 'oc')
693b1aba 30
15825ef1
C
31export function loadConfigFactory (server: ServerService, pluginService: PluginService, redirectService: RedirectService) {
32 const initializeServices = () => {
33 redirectService.init()
34 pluginService.initializePlugins()
35 }
36
fc21ef5c
C
37 return () => {
38 const result = server.loadHTMLConfig()
15825ef1 39 if (result) return result.pipe(tap(() => initializeServices()))
fc21ef5c 40
15825ef1 41 initializeServices()
fc21ef5c 42 }
8e08d415
C
43}
44
ab32b0fc
C
45@NgModule({
46 bootstrap: [ AppComponent ],
67ed6552 47
ab32b0fc 48 declarations: [
b33f657c 49 AppComponent,
f0b56fdd 50 EmptyComponent,
b33f657c
C
51
52 MenuComponent,
8afc19a6 53 LanguageChooserComponent,
d3217560 54 QuickSettingsModalComponent,
51a83970 55 NotificationComponent,
43d0ea7f 56 HeaderComponent,
f409f0c3 57 SearchTypeaheadComponent,
6af662a5 58 SuggestionComponent,
1942f11d 59 HighlightPipe,
43d0ea7f 60
8f581725 61 AccountSetupWarningModalComponent,
437e8e06 62 CustomModalComponent,
8f581725 63 AdminWelcomeModalComponent,
67ed6552
C
64 InstanceConfigWarningModalComponent,
65 ConfirmComponent
ab32b0fc 66 ],
67ed6552 67
693b1aba 68 imports: [
ab32b0fc 69 BrowserModule,
1d22d251 70 ServiceWorkerModule.register('ngsw-worker.js', { enabled: environment.production }),
23bcf666 71
693b1aba 72 CoreModule,
67ed6552
C
73 SharedMainModule,
74 SharedFormModule,
75 SharedUserInterfaceSettingsModule,
76 SharedGlobalIconModule,
77 SharedInstanceModule,
746018f6 78 SharedActorImageModule,
693b1aba 79
a9614776 80 AppRoutingModule // Put it after all the module because it has the 404 route
ab32b0fc 81 ],
361dcebc 82
989e526a 83 providers: [
8cc56c7f
C
84 {
85 provide: APP_BASE_HREF,
86 useValue: '/'
8e08d415
C
87 },
88 {
89 provide: APP_INITIALIZER,
90 useFactory: loadConfigFactory,
15825ef1 91 deps: [ ServerService, PluginService, RedirectService ],
8e08d415 92 multi: true
fc21ef5c 93 }
989e526a 94 ]
ab32b0fc 95})
63c4db6d 96export class AppModule {}