diff --git a/npm/ng-packs/packages/theme-shared/src/lib/directives/disabled.directive.ts b/npm/ng-packs/packages/theme-shared/src/lib/directives/disabled.directive.ts index c8efa59b4a..6c53df9aa4 100644 --- a/npm/ng-packs/packages/theme-shared/src/lib/directives/disabled.directive.ts +++ b/npm/ng-packs/packages/theme-shared/src/lib/directives/disabled.directive.ts @@ -1,18 +1,19 @@ -import { Directive, OnChanges, SimpleChanges, inject, input } from '@angular/core'; +import { Directive, effect, inject, input } from '@angular/core'; import { NgControl } from '@angular/forms'; @Directive({ selector: '[abpDisabled]', }) -export class DisabledDirective implements OnChanges { +export class DisabledDirective { private ngControl = inject(NgControl, { host: true }); readonly abpDisabled = input(false); // Related issue: https://github.com/angular/angular/issues/35330 - ngOnChanges({ abpDisabled }: SimpleChanges) { - if (this.ngControl.control && abpDisabled) { - this.ngControl.control[abpDisabled.currentValue ? 'disable' : 'enable'](); + private disabledEffect = effect(() => { + const disabled = this.abpDisabled(); + if (this.ngControl.control) { + this.ngControl.control[disabled ? 'disable' : 'enable'](); } - } + }); }