import { Component, Inject, OnInit } from '@angular/core'; import { FormBuilder, FormGroup, Validators } from '@angular/forms'; import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog'; import { UserAliasManagementService } from '../../../services/admin/useralias.management.service'; @Component({ standalone: false, selector: 'admin-user-alias-edit-dialog', templateUrl: './user-alias.edit.html', styleUrls: ['../admin.scss'] }) export class AdminUserAliasEditDialog implements OnInit { form: FormGroup; isEditMode: boolean = false; visibilityOptions = ['PRIVATE', 'PROTECTED', 'PUBLIC']; constructor( private fb: FormBuilder, private userAliasManagementService: UserAliasManagementService, public dialogRef: MatDialogRef, @Inject(MAT_DIALOG_DATA) public data: any ) { this.isEditMode = !!data?.userAlias; this.form = this.fb.group({ id: [data?.userAlias?.id || null], target: [data?.userAlias?.target || null, Validators.required], alias: [data?.userAlias?.alias || '', Validators.required], visibility: [data?.userAlias?.visibility || 'PROTECTED', Validators.required] }); } ngOnInit(): void {} onSubmit(): void { if (this.form.valid) { const userAlias = this.form.value; this.userAliasManagementService.createOrUpdateAlias(userAlias).subscribe({ next: (result) => { this.dialogRef.close(result); }, error: (error) => { console.error('Error saving user alias:', error); } }); } } onCancel(): void { this.dialogRef.close(); } }