mirror of
https://github.com/Raghu-Ch/angular-challenges.git
synced 2026-02-12 05:43:03 -05:00
feat(challenge33): add new challenge about decoupling
This commit is contained in:
20
libs/decoupling/brain/src/lib/button-disabled.directive.ts
Normal file
20
libs/decoupling/brain/src/lib/button-disabled.directive.ts
Normal file
@@ -0,0 +1,20 @@
|
||||
/* eslint-disable @angular-eslint/directive-selector */
|
||||
/* eslint-disable @angular-eslint/no-host-metadata-property */
|
||||
import { Directive, WritableSignal, signal } from '@angular/core';
|
||||
|
||||
export type ButtonState = 'enabled' | 'disabled';
|
||||
|
||||
@Directive({
|
||||
selector: 'button[btnDisabled]',
|
||||
standalone: true,
|
||||
host: {
|
||||
'(click)': 'toggleState()',
|
||||
},
|
||||
})
|
||||
export class BtnDisabledDirective {
|
||||
state: WritableSignal<ButtonState> = signal('enabled');
|
||||
|
||||
toggleState() {
|
||||
this.state.set(this.state() === 'enabled' ? 'disabled' : 'enabled');
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user