import { Component, Input, OnDestroy, OnInit, inject } from '@angular/core'; import { Subscription } from 'rxjs'; import { DialogService } from '../../../../shared/services/dialog.service'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { IDetailsControl } from '../../../../shared/models/details-control'; @Component({ selector: 'lib-message-new-template', templateUrl: './message-new-template.component.html', styleUrl: './message-new-template.component.scss' }) export class MessageNewTemplateComponent implements OnInit, OnDestroy { @Input() newMessageTemplateDialogID!: string; private dialogStateSubscription!: Subscription; public dialogState!: IDetailsControl; private _dialogService = inject(DialogService); private _fb = inject(FormBuilder); public addNewTemplateForm!: FormGroup; public text: any ngOnInit(): void { this.setFormStructure() this.dialogStateSubscription = this._dialogService .getDialogState(this.newMessageTemplateDialogID) .subscribe((state) => { this.dialogState = state; }); } setFormStructure(): void { this.addNewTemplateForm = this._fb.group({ messageTitle: ['', [Validators.required]], messageSubscriptions: ['', [Validators.required]], messageContent: ['', [Validators.required]] }); } ngOnDestroy(): void { this.dialogStateSubscription.unsubscribe(); } closeDialog(): void { this._dialogService.closeDialog(this.newMessageTemplateDialogID); } editOn() { this.setEditMode(this.newMessageTemplateDialogID, true); } setEditMode(id: string, isEditing: boolean): void { this._dialogService.setEditingState(id, isEditing); } }