Browse Source

Refactor spinner and placeholder handling in directive

Spinner is now always inserted before the first child of the parent, and placeholder removal is guarded by a parent check. This improves robustness when manipulating DOM elements in the directive.
pull/23657/head
Fahri Gedik 1 year ago
parent
commit
be107b50bd
  1. 11
      npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts

11
npm/ng-packs/packages/theme-shared/src/lib/directives/ngx-datatable-list.directive.ts

@ -111,10 +111,13 @@ export class NgxDatatableListDirective implements OnChanges, OnInit, DoCheck {
const spinnerRef = this.viewContainerRef.createComponent(SpinnerComponent);
const spinnerElement = spinnerRef.location.nativeElement;
if (placeholder?.parentNode === parent) {
this.renderer.insertBefore(parent, spinnerElement, placeholder);
this.renderer.insertBefore(parent, spinnerElement, parent.firstChild);
const placeholderParent = placeholder?.parentNode as Element | null;
if (placeholderParent) {
this.renderer.removeChild(placeholderParent, placeholder);
}
this.renderer.removeChild(parent, placeholder);
}
protected setInitialValues() {
@ -185,4 +188,4 @@ export class NgxDatatableListDirective implements OnChanges, OnInit, DoCheck {
this.setTablePage(maxPage);
}
}
}
}
Loading…
Cancel
Save