@engie-group/fluid-design-system-angular
Version:
Fluid Design System Angular
37 lines (29 loc) • 947 B
text/typescript
import {ChangeDetectorRef, Directive, DoCheck, Host, inject, Self} from '@angular/core';
import {ListItemComponent} from '../../list-item/list-item.component';
import {SidebarComponent} from '../sidebar.component';
export class SidebarItemDirective implements DoCheck {
private isCurrentlyFolded: boolean;
private sidebar = inject(SidebarComponent);
private listItem = inject(ListItemComponent);
private cdr = inject(ChangeDetectorRef);
constructor() {
this.listItem.hasRightBorder = true;
this.updateListItemFoldedState();
}
ngDoCheck() {
if (this.isCurrentlyFolded !== this.sidebar.isFolded) {
this.updateListItemFoldedState();
}
}
private updateListItemFoldedState() {
this.isCurrentlyFolded = this.sidebar.isFolded;
this.listItem.isIconOnly = this.isCurrentlyFolded;
this.cdr.markForCheck();
}
}