Skip to content

Commit 4c5f0c5

Browse files
Copilotrenemadsen
andcommitted
Apply proper Angular 21 solution: use appendTo='.cdk-overlay-pane' for modal dropdowns
Co-authored-by: renemadsen <76994+renemadsen@users.noreply.github.com>
1 parent aa112fe commit 4c5f0c5

15 files changed

Lines changed: 11 additions & 160 deletions

File tree

eform-client/src/app/app.module.ts

Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -67,8 +67,6 @@ import {
6767
} from './state';
6868
import {NgxMaskDirective, NgxMaskPipe} from 'ngx-mask';
6969
import {NgxMaterialTimepickerModule} from 'ngx-material-timepicker';
70-
import {OverlayContainer} from '@angular/cdk/overlay';
71-
import {CustomOverlayContainer} from './common/services/custom-overlay-container.service';
7270

7371
// Factory function for APP_INITIALIZER to register icons
7472
export function registerIconsFactory(iconService: IconService) {
@@ -155,10 +153,6 @@ export function registerIconsFactory(iconService: IconService) {
155153
useFactory: registerIconsFactory,
156154
deps: [IconService],
157155
multi: true
158-
},
159-
{
160-
provide: OverlayContainer,
161-
useClass: CustomOverlayContainer
162156
}
163157
],
164158
bootstrap: [AppComponent],

eform-client/src/app/common/services/custom-overlay-container.service.ts

Lines changed: 0 additions & 67 deletions
This file was deleted.

eform-client/src/app/common/services/dialog-wrapper.service.ts

Lines changed: 0 additions & 64 deletions
This file was deleted.

eform-client/src/app/components/app.component.ts

Lines changed: 0 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,6 @@ import {
1212
import {AuthStateService} from 'src/app/common/store';
1313
import {TranslateService} from '@ngx-translate/core';
1414
import { SpinnerComponent } from './eform-spinner/spinner.component';
15-
import { MatDialog } from '@angular/material/dialog';
16-
import { CustomOverlayContainer } from 'src/app/common/services/custom-overlay-container.service';
1715

1816
@Component({
1917
selector: 'app-root',
@@ -30,30 +28,9 @@ export class AppComponent implements OnInit, OnDestroy {
3028
private ngTitle = inject(Title);
3129
private titleService = inject(TitleService);
3230
private authSyncStorageService = inject(AuthSyncStorageService);
33-
private dialog = inject(MatDialog);
34-
private overlayContainer = inject(CustomOverlayContainer);
3531

3632
public selectIsAuth$ = this.authStore.select(selectAuthIsAuth);
3733

38-
constructor() {
39-
// Automatically move overlay container into dialogs for Angular 21 popover compatibility
40-
// This ensures dropdowns (mtx-select, ng-select) appear above modal content
41-
this.dialog.afterOpened.subscribe(dialogRef => {
42-
// Use setTimeout to ensure dialog element is in DOM
43-
setTimeout(() => {
44-
const dialogElement = document.querySelector('.mat-mdc-dialog-container');
45-
if (dialogElement) {
46-
this.overlayContainer.setContainerParent(dialogElement as HTMLElement);
47-
}
48-
}, 0);
49-
50-
// Restore overlay container when dialog closes
51-
dialogRef.afterClosed().subscribe(() => {
52-
this.overlayContainer.restoreContainerParent();
53-
});
54-
});
55-
}
56-
5734
ngOnInit(): void {
5835
this.authSyncStorageService.init();
5936
this.selectIsAuth$.pipe(debounceTime(1000), take(1)).subscribe((isAuth) => {

eform-client/src/app/modules/advanced/components/sites/site-edit/site-edit.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ <h3 mat-dialog-title>{{ 'Edit' | translate}}</h3>
1313
<mat-label>{{ 'Current tags' | translate }}</mat-label>
1414
<mtx-select
1515
class="custom"
16+
[appendTo]="'.cdk-overlay-pane'"
1617
[dropdownPosition]="'bottom'"
1718
[(ngModel)]="site.tags"
1819
[bindValue]="'id'"

eform-client/src/app/modules/advanced/modules/navigation-menu/components/menu-custom/navigation-menu-custom-dropdown/navigation-menu-custom-dropdown.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@ <h3 mat-dialog-title>{{'New dropdown' | translate}}</h3>
33
<mat-form-field>
44
<mat-label>{{'Security groups' | translate}}</mat-label>
55
<mtx-select
6+
[appendTo]="'.cdk-overlay-pane'"
67
[dropdownPosition]="'bottom'"
78
[(ngModel)]="customDropdownModel.securityGroupsIds"
89
[bindValue]="'id'"

eform-client/src/app/modules/advanced/modules/navigation-menu/components/menu-custom/navigation-menu-custom-link/navigation-menu-custom-link.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ <h3 mat-dialog-title>{{ 'New custom link' | translate }}</h3>
44
<mat-form-field>
55
<mat-label>{{ 'Security groups' | translate }}</mat-label>
66
<mtx-select
7+
[appendTo]="'.cdk-overlay-pane'"
78
[dropdownPosition]="'bottom'"
89
[(ngModel)]="customLinkModel.securityGroupsIds"
910
[bindValue]="'id'"

eform-client/src/app/modules/advanced/modules/navigation-menu/components/menu-item/navigation-menu-item-edit/navigation-menu-item-edit.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ <h3 mat-dialog-title>{{'Edit menu entry' | translate}}</h3>
44
<mat-form-field>
55
<mat-label>{{'Security groups' | translate}}</mat-label>
66
<mtx-select
7+
[appendTo]="'.cdk-overlay-pane'"
78
[dropdownPosition]="'bottom'"
89
[(ngModel)]="item.securityGroupsIds"
910
[bindValue]="'id'"

eform-client/src/app/modules/eforms/components/eform-create-modal/eform-create-modal.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@ <h3 mat-dialog-title>{{ 'Create eForm' | translate }}</h3>
66
<mat-label>{{ 'Tags' | translate }}</mat-label>
77
<mtx-select
88
class="custom"
9+
[appendTo]="'.cdk-overlay-pane'"
910
[dropdownPosition]="'bottom'"
1011
[(ngModel)]="eFormCreateModel.tagIds"
1112
[bindValue]="'id'"

eform-client/src/app/modules/eforms/components/eform-edit-tags-modal/eform-edit-tags-modal.component.html

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ <h3 mat-dialog-title>{{ 'Select tags for template' | translate }}</h3>
44
<mat-label>{{ 'Current tags' | translate }}</mat-label>
55
<mtx-select
66
class="custom"
7+
[appendTo]="'.cdk-overlay-pane'"
78
[dropdownPosition]="'bottom'"
89
[(ngModel)]="selectedTemplateTagsIds"
910
[bindValue]="'id'"

0 commit comments

Comments
 (0)