summaryrefslogtreecommitdiffstats
path: root/vid-webpack-master/src/app/featureFlag/directive/basic/basic.featureFlag.directive.ts
blob: e6cbb4f17866c1bf1e1a36351dabcb75329d4884 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
import {AfterContentChecked, Directive, ElementRef, Input} from '@angular/core';
import {FeatureFlagService} from "../../service/featureFlag.service";
import * as _ from 'lodash';

/************************************************************************
    Feature Flag Directive
    Example:
    <div featureFlag [flagName]='"<flag name>"'></div>
 ************************************************************************/
@Directive({
  selector: '[featureFlag]'
})
export class BasicFeatureFlagDirective implements AfterContentChecked {
  @Input() flagName: string;
  element: ElementRef;

  constructor(el: ElementRef, private _featureToggleService: FeatureFlagService) {
    this.element = el;
  }

  ngAfterContentChecked(): void {
    if (!_.isNil(this.element)) {
      const isFeatureOn: boolean = this._featureToggleService.isFeatureOn(this.flagName);
        if(!isFeatureOn){
          this._featureToggleService.hideElement(this.element)
        }
    }
  }
}