Browse Source

UI: Refactoring value change to destroy

pull/7780/head
Artem Dzhereleiko 4 years ago
parent
commit
8a02f3643c
  1. 18
      ui-ngx/src/app/modules/home/components/profile/device/snmp/snmp-device-profile-mapping.component.ts

18
ui-ngx/src/app/modules/home/components/profile/device/snmp/snmp-device-profile-mapping.component.ts

@ -18,19 +18,20 @@ import { Component, forwardRef, Input, OnDestroy, OnInit } from '@angular/core';
import { import {
AbstractControl, AbstractControl,
ControlValueAccessor, ControlValueAccessor,
NG_VALIDATORS,
NG_VALUE_ACCESSOR,
UntypedFormArray, UntypedFormArray,
UntypedFormBuilder, UntypedFormBuilder,
UntypedFormGroup, UntypedFormGroup,
NG_VALIDATORS,
NG_VALUE_ACCESSOR,
ValidationErrors, ValidationErrors,
Validator, Validator,
Validators Validators
} from '@angular/forms'; } from '@angular/forms';
import { SnmpMapping } from '@shared/models/device.models'; import { SnmpMapping } from '@shared/models/device.models';
import { Subscription } from 'rxjs'; import { Subject } from 'rxjs';
import { DataType, DataTypeTranslationMap } from '@shared/models/constants'; import { DataType, DataTypeTranslationMap } from '@shared/models/constants';
import { isUndefinedOrNull } from '@core/utils'; import { isUndefinedOrNull } from '@core/utils';
import { takeUntil } from 'rxjs/operators';
@Component({ @Component({
selector: 'tb-snmp-device-profile-mapping', selector: 'tb-snmp-device-profile-mapping',
@ -60,7 +61,7 @@ export class SnmpDeviceProfileMappingComponent implements OnInit, OnDestroy, Con
private readonly oidPattern: RegExp = /^\.?([0-2])((\.0)|(\.[1-9][0-9]*))*$/; private readonly oidPattern: RegExp = /^\.?([0-2])((\.0)|(\.[1-9][0-9]*))*$/;
private valueChange$: Subscription = null; private destroy$ = new Subject<void>();
private propagateChange = (v: any) => { }; private propagateChange = (v: any) => { };
constructor(private fb: UntypedFormBuilder) { } constructor(private fb: UntypedFormBuilder) { }
@ -69,13 +70,14 @@ export class SnmpDeviceProfileMappingComponent implements OnInit, OnDestroy, Con
this.mappingsConfigForm = this.fb.group({ this.mappingsConfigForm = this.fb.group({
mappings: this.fb.array([]) mappings: this.fb.array([])
}); });
this.valueChange$ = this.mappingsConfigForm.valueChanges.subscribe(() => this.updateModel()); this.mappingsConfigForm.valueChanges.pipe(
takeUntil(this.destroy$)
).subscribe(() => this.updateModel());
} }
ngOnDestroy() { ngOnDestroy() {
if (this.valueChange$) { this.destroy$.next();
this.valueChange$.unsubscribe(); this.destroy$.complete();
}
} }
registerOnChange(fn: any) { registerOnChange(fn: any) {

Loading…
Cancel
Save