fix: dialog overlay after lazy loading child component

This commit is contained in:
Marcel Haag 2022-03-25 12:48:31 +01:00
parent 7f2dbcacf4
commit a155832ad8
5 changed files with 47 additions and 41 deletions

View File

@ -28,6 +28,7 @@ import {httpInterceptorProviders} from '@shared/interceptors';
import {FlexLayoutModule} from '@angular/flex-layout'; import {FlexLayoutModule} from '@angular/flex-layout';
import {DialogService} from '@shared/services/dialog-service/dialog.service'; import {DialogService} from '@shared/services/dialog-service/dialog.service';
import {ConfirmDialogModule} from '@shared/modules/confirm-dialog/confirm-dialog.module'; import {ConfirmDialogModule} from '@shared/modules/confirm-dialog/confirm-dialog.module';
import {OverlayContainer} from '@angular/cdk/overlay';
@NgModule({ @NgModule({
declarations: [ declarations: [
@ -37,14 +38,15 @@ import {ConfirmDialogModule} from '@shared/modules/confirm-dialog/confirm-dialog
BrowserModule, BrowserModule,
AppRoutingModule, AppRoutingModule,
RouterModule, RouterModule,
FontAwesomeModule,
NbToastrModule.forRoot(), // used for notification service
BrowserAnimationsModule,
ThemeModule.forRoot(),
NbLayoutModule, NbLayoutModule,
NbDialogModule.forRoot(),
NbCardModule, NbCardModule,
NbIconModule, NbIconModule,
NbButtonModule, NbButtonModule,
NbToastrModule.forRoot(), // used for notification service
FontAwesomeModule,
BrowserAnimationsModule,
ThemeModule.forRoot(),
NbEvaIconsModule, NbEvaIconsModule,
ConfirmDialogModule, ConfirmDialogModule,
NgxsModule.forRoot([SessionState], {developmentMode: !environment.production}), NgxsModule.forRoot([SessionState], {developmentMode: !environment.production}),
@ -56,7 +58,6 @@ import {ConfirmDialogModule} from '@shared/modules/confirm-dialog/confirm-dialog
deps: [HttpClient] deps: [HttpClient]
} }
}), }),
NbDialogModule.forRoot(),
HeaderModule, HeaderModule,
HomeModule, HomeModule,
FlexLayoutModule FlexLayoutModule
@ -69,11 +70,12 @@ import {ConfirmDialogModule} from '@shared/modules/confirm-dialog/confirm-dialog
multi: true, multi: true,
deps: [KeycloakService] deps: [KeycloakService]
}, },
OverlayContainer,
KeycloakService, KeycloakService,
httpInterceptorProviders, httpInterceptorProviders,
NotificationService, NotificationService,
DialogService,
NbDialogService, NbDialogService,
DialogService
], ],
bootstrap: [ bootstrap: [
AppComponent AppComponent

View File

@ -2,36 +2,34 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common'; import {CommonModule} from '@angular/common';
import {ProjectOverviewComponent} from './project-overview.component'; import {ProjectOverviewComponent} from './project-overview.component';
import {ProjectOverviewRoutingModule} from './project-overview-routing.module'; import {ProjectOverviewRoutingModule} from './project-overview-routing.module';
import {NbButtonModule, NbCardModule, NbDialogService, NbProgressBarModule} from '@nebular/theme'; import {NbButtonModule, NbCardModule, NbProgressBarModule, NbSpinnerModule} from '@nebular/theme';
import {FlexLayoutModule} from '@angular/flex-layout'; import {FlexLayoutModule} from '@angular/flex-layout';
import {FontAwesomeModule} from '@fortawesome/angular-fontawesome'; import {FontAwesomeModule} from '@fortawesome/angular-fontawesome';
import {TranslateModule} from '@ngx-translate/core'; import {TranslateModule} from '@ngx-translate/core';
import {DateTimeFormatPipe} from '@shared/pipes/date-time-format.pipe'; import {DateTimeFormatPipe} from '@shared/pipes/date-time-format.pipe';
import {ProjectModule} from './project';
import {ProjectDialogComponent} from '@shared/modules/project-dialog/project-dialog.component';
import {DialogService} from '@shared/services/dialog-service/dialog.service';
import {ProjectDialogModule} from '@shared/modules/project-dialog/project-dialog.module'; import {ProjectDialogModule} from '@shared/modules/project-dialog/project-dialog.module';
import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-spinner.component';
@NgModule({ @NgModule({
declarations: [ declarations: [
ProjectOverviewComponent, ProjectOverviewComponent,
DateTimeFormatPipe DateTimeFormatPipe,
LoadingSpinnerComponent
], ],
imports: [ imports: [
CommonModule, CommonModule,
ProjectOverviewRoutingModule,
NbCardModule, NbCardModule,
NbButtonModule, NbButtonModule,
NbSpinnerModule,
NbProgressBarModule,
ProjectOverviewRoutingModule,
FlexLayoutModule, FlexLayoutModule,
FontAwesomeModule, FontAwesomeModule,
TranslateModule, TranslateModule,
NbProgressBarModule,
ProjectModule,
ProjectDialogModule ProjectDialogModule
], ],
providers: [ exports: [
DialogService, LoadingSpinnerComponent
NbDialogService
] ]
}) })
export class ProjectOverviewModule { export class ProjectOverviewModule {

View File

@ -1,12 +1,17 @@
import { NgModule } from '@angular/core'; import {NgModule} from '@angular/core';
import { CommonModule } from '@angular/common'; import {RouterModule, Routes} from '@angular/router';
import {ProjectComponent} from './project.component';
const routes: Routes = [
{
path: '',
component: ProjectComponent
},
];
@NgModule({ @NgModule({
declarations: [], imports: [RouterModule.forChild(routes)],
imports: [ exports: [RouterModule]
CommonModule
]
}) })
export class ProjectRoutingModule { } export class ProjectRoutingModule {
}

View File

@ -2,28 +2,28 @@ import {NgModule} from '@angular/core';
import {CommonModule} from '@angular/common'; import {CommonModule} from '@angular/common';
import {RouterModule} from '@angular/router'; import {RouterModule} from '@angular/router';
import {ProjectComponent} from './project.component'; import {ProjectComponent} from './project.component';
import {LoadingSpinnerComponent} from '@shared/widgets/loading-spinner/loading-spinner.component'; import {NbCardModule, NbLayoutModule} from '@nebular/theme';
import {NbCardModule, NbLayoutModule, NbSpinnerModule} from '@nebular/theme';
import {FlexLayoutModule} from '@angular/flex-layout'; import {FlexLayoutModule} from '@angular/flex-layout';
import {TranslateModule} from '@ngx-translate/core';
import {ProjectDialogModule} from '@shared/modules/project-dialog/project-dialog.module';
import {ProjectRoutingModule} from './project-routing.module';
@NgModule({ @NgModule({
declarations: [ declarations: [
ProjectComponent, ProjectComponent
LoadingSpinnerComponent
],
exports: [
LoadingSpinnerComponent
], ],
imports: [ imports: [
CommonModule, CommonModule,
NbCardModule,
NbLayoutModule,
RouterModule.forChild([{ RouterModule.forChild([{
path: '', path: '',
component: ProjectComponent component: ProjectComponent
}]), }]),
NbCardModule, ProjectRoutingModule,
NbSpinnerModule, TranslateModule,
FlexLayoutModule, FlexLayoutModule,
NbLayoutModule, ProjectDialogModule,
] ]
}) })
export class ProjectModule { export class ProjectModule {

View File

@ -1,5 +1,5 @@
import { NgModule } from '@angular/core'; import {NgModule} from '@angular/core';
import { CommonModule } from '@angular/common'; import {CommonModule} from '@angular/common';
import {ProjectDialogComponent} from '@shared/modules/project-dialog/project-dialog.component'; import {ProjectDialogComponent} from '@shared/modules/project-dialog/project-dialog.component';
import {NbButtonModule, NbCardModule, NbDialogService, NbFormFieldModule, NbInputModule} from '@nebular/theme'; import {NbButtonModule, NbCardModule, NbDialogService, NbFormFieldModule, NbInputModule} from '@nebular/theme';
import {FlexLayoutModule} from '@angular/flex-layout'; import {FlexLayoutModule} from '@angular/flex-layout';
@ -17,12 +17,12 @@ import {ProjectDialogService} from '@shared/modules/project-dialog/service/proje
CommonModule, CommonModule,
NbCardModule, NbCardModule,
NbButtonModule, NbButtonModule,
NbFormFieldModule,
NbInputModule,
FlexLayoutModule, FlexLayoutModule,
FontAwesomeModule, FontAwesomeModule,
TranslateModule, TranslateModule,
ReactiveFormsModule, ReactiveFormsModule
NbFormFieldModule,
NbInputModule,
], ],
providers: [ providers: [
DialogService, DialogService,
@ -33,4 +33,5 @@ import {ProjectDialogService} from '@shared/modules/project-dialog/service/proje
ProjectDialogComponent ProjectDialogComponent
] ]
}) })
export class ProjectDialogModule { } export class ProjectDialogModule {
}