From 0d47e2358d3cf9ee4b6ca69325b9bd6b5db64386 Mon Sep 17 00:00:00 2001 From: Brandon Clayton <bclayton@usgs.gov> Date: Fri, 15 Nov 2024 09:04:29 -0700 Subject: [PATCH] reset state on value change --- .../control-panel/control-panel.component.ts | 28 +++++++++++++++++-- 1 file changed, 26 insertions(+), 2 deletions(-) diff --git a/projects/nshmp-apps/src/app/ncm/geophysical-profiles/components/control-panel/control-panel.component.ts b/projects/nshmp-apps/src/app/ncm/geophysical-profiles/components/control-panel/control-panel.component.ts index 884c79475..3f5409dd5 100644 --- a/projects/nshmp-apps/src/app/ncm/geophysical-profiles/components/control-panel/control-panel.component.ts +++ b/projects/nshmp-apps/src/app/ncm/geophysical-profiles/components/control-panel/control-panel.component.ts @@ -1,4 +1,4 @@ -import {Component, computed, Signal} from '@angular/core'; +import {Component, computed, OnDestroy, OnInit, Signal} from '@angular/core'; import {ReactiveFormsModule} from '@angular/forms'; import {MatButtonModule} from '@angular/material/button'; import {MatFormFieldModule} from '@angular/material/form-field'; @@ -19,6 +19,7 @@ import {Location} from '@ghsc/nshmp-utils-ts/libs/nshmp-lib/geo'; import {NshmId} from '@ghsc/nshmp-utils-ts/libs/nshmp-lib/nshm'; import {DoubleParameter} from '@ghsc/nshmp-utils-ts/libs/nshmp-ws-utils/metadata'; import {environment} from 'projects/nshmp-apps/src/environments/environment'; +import {Subscription} from 'rxjs'; import {AppService} from '../../services/app.service'; @@ -39,7 +40,7 @@ import {AppService} from '../../services/app.service'; styleUrl: './control-panel.component.scss', templateUrl: './control-panel.component.html', }) -export class ControlPanelComponent { +export class ControlPanelComponent implements OnInit, OnDestroy { formGroup = this.service.formGroup; parameters = computed(() => this.service.usage()?.response.parameters); @@ -62,8 +63,31 @@ export class ControlPanelComponent { }; }); + private subs: Subscription[] = []; + constructor(public service: AppService) {} + ngOnInit(): void { + const controls = this.formGroup.controls; + + this.subs.push( + controls.depthInc.valueChanges.subscribe(() => this.service.resetState()) + ); + this.subs.push( + controls.depthMax.valueChanges.subscribe(() => this.service.resetState()) + ); + this.subs.push( + controls.depthMin.valueChanges.subscribe(() => this.service.resetState()) + ); + this.subs.push( + controls.locations.valueChanges.subscribe(() => this.service.resetState()) + ); + } + + ngOnDestroy(): void { + this.subs.forEach(sub => sub.unsubscribe()); + } + removeLocation(index: number): void { this.formGroup.controls.locations.removeAt(index); } -- GitLab