import {Component, OnInit, ViewChild} from '@angular/core'; import {DataCard} from '@nspop/gm-web-facade-api'; import {NgForm} from '@angular/forms'; import {FormComponent} from '../confirm-navigation-if-dirty.framework'; import {finalize} from 'rxjs/operators'; import {copy} from '../../utils/copy'; import {DataCardService} from '../api/data-card.service'; @Component({ selector: 'app-pregnancy', templateUrl: './pregnancy.component.html', styleUrls: ['./pregnancy.component.scss'] }) export class PregnancyComponent extends FormComponent implements OnInit { public dataCard: DataCard | undefined; public disableSaveButton = false; @ViewChild('form', {static: true}) form: NgForm|undefined; private documentUniqueId = ''; private version = ''; constructor(private dataCardService: DataCardService) { super(); } ngOnInit(): void { this.dataCardService.selectedDataCard$.subscribe((dataCard?: DataCard) => { if (dataCard) { this.documentUniqueId = dataCard.documentUniqueId ?? ''; this.version = dataCard.version ?? ''; this.dataCard = copy(dataCard); } }); } public save(): void { if (this.form?.valid) { this.disableSaveButton = true; this.dataCardService.update(this.dataCard as DataCard, this.documentUniqueId, this.version) .pipe(finalize(() => this.disableSaveButton = false)) .subscribe(() => { this.dataCardService.refresh(); this.form?.form.markAsPristine(); }); } } }