Skip to content
This repository was archived by the owner on Jul 15, 2022. It is now read-only.

Commit 9740294

Browse files
author
Leonardo Chaia
committed
refactor: implemented dynamic entryComponents for tabsModule
1 parent 97a915e commit 9740294

File tree

7 files changed

+23
-29
lines changed

7 files changed

+23
-29
lines changed

src/app/app-tabs.module.ts

Lines changed: 2 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@ import {
1313
import { ContainerCreateContainerComponent } from './daemon-tools/container-create-container/container-create-container.component';
1414
import { RegistryListContainerComponent } from './registry/registry-list-container/registry-list-container.component';
1515
import { HomeContainerComponent } from './home/home-container/home-container.component';
16-
import { ITimoneerTab, APPLICATION_TABS } from './tabs/tab.model';
16+
import { ITimoneerTab } from './tabs/tab.model';
1717
import { TimoneerTabs } from './timoneer-tabs';
1818
import { VolumeListContainerComponent } from './daemon-tools/volume-list-container/volume-list-container.component';
1919
import { VolumeCreateContainerComponent } from './daemon-tools/volume-create-container/volume-create-container.component';
@@ -86,13 +86,7 @@ const TIMONEER_AVAILABLE_TABS: ITimoneerTab[] = [
8686

8787
@NgModule({
8888
imports: [
89-
TabsModule,
89+
TabsModule.forRoot(TIMONEER_AVAILABLE_TABS),
9090
],
91-
providers: [
92-
{
93-
provide: APPLICATION_TABS,
94-
useValue: TIMONEER_AVAILABLE_TABS
95-
}
96-
]
9791
})
9892
export class AppTabsModule { }

src/app/application-templates/application-templates.module.ts

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -36,10 +36,6 @@ import { DaemonToolsModule } from '../daemon-tools/daemon-tools.module';
3636
exports: [
3737
ApplicationListComponent,
3838
ApplicationListContainerComponent,
39-
],
40-
entryComponents: [
41-
ApplicationListContainerComponent,
42-
ApplicationLaunchContainerComponent,
4339
]
4440
})
4541
export class ApplicationTemplatesModule { }

src/app/daemon-tools/daemon-tools.module.ts

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -118,14 +118,6 @@ import { ContainerListContainerComponent } from './container-list-container/cont
118118
],
119119
entryComponents: [
120120
ImagePullModalComponent,
121-
ImageListContainerComponent,
122-
ContainerAttacherContainerComponent,
123-
ContainerExecContainerComponent,
124-
ContainerCreateContainerComponent,
125-
VolumeListContainerComponent,
126-
VolumeCreateContainerComponent,
127-
SystemContainerComponent,
128-
ContainerListContainerComponent,
129121
]
130122
})
131123
export class DaemonToolsModule { }

src/app/home/home.module.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,9 +28,6 @@ import { RegistryCardsComponent } from './registry-cards/registry-cards.componen
2828
DaemonStatusCardComponent,
2929
HubSettingsCardComponent,
3030
RegistryCardsComponent
31-
],
32-
entryComponents: [
33-
HomeContainerComponent,
3431
]
3532
})
3633
export class HomeModule { }

src/app/registry/registry.module.ts

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -28,8 +28,5 @@ import { RegistryListContainerComponent } from './registry-list-container/regist
2828
exports: [
2929
RegistryListComponent
3030
],
31-
entryComponents: [
32-
RegistryListContainerComponent
33-
]
3431
})
3532
export class RegistryModule { }

src/app/settings/settings.module.ts

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,6 @@ import { SettingsUpdaterComponent } from './settings-updater/settings-updater.co
3939
],
4040
entryComponents: [
4141
RegistrySettingsModalComponent,
42-
SettingsContainerComponent,
4342
],
4443
exports: [
4544
SettingsContainerComponent,

src/app/tabs/tabs.module.ts

Lines changed: 21 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
import { NgModule } from '@angular/core';
1+
import { NgModule, ModuleWithProviders, ANALYZE_FOR_ENTRY_COMPONENTS } from '@angular/core';
22
import { CommonModule } from '@angular/common';
33
import { TabsContainerComponent } from './tabs-container/tabs-container.component';
44
import { MatTabsModule, MatIconModule, MatButtonModule } from '@angular/material';
@@ -7,6 +7,7 @@ import { TabStorageService } from './tab-storage.service';
77
import { TabService } from './tab.service';
88
import { FlexLayoutModule } from '@angular/flex-layout';
99
import { ElectronToolsModule } from '../electron-tools/electron-tools.module';
10+
import { ITimoneerTab, APPLICATION_TABS } from './tab.model';
1011

1112
@NgModule({
1213
imports: [
@@ -30,4 +31,22 @@ import { ElectronToolsModule } from '../electron-tools/electron-tools.module';
3031
TabsContainerComponent,
3132
]
3233
})
33-
export class TabsModule { }
34+
export class TabsModule {
35+
36+
public static forRoot(config: ITimoneerTab[]): ModuleWithProviders {
37+
return {
38+
ngModule: TabsModule,
39+
providers: [
40+
...config.map(c => ({
41+
provide: ANALYZE_FOR_ENTRY_COMPONENTS,
42+
useValue: c.component,
43+
multi: true
44+
})),
45+
{
46+
provide: APPLICATION_TABS,
47+
useValue: config
48+
}
49+
]
50+
};
51+
}
52+
}

0 commit comments

Comments
 (0)