import { Component, inject, Inject } from '@angular/core';
import { MAT_DIALOG_DATA, MatDialogRef } from '@angular/material/dialog';
import { CommonModule } from '@angular/common';
import { FormBuilder, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms';
import { AngularMaterialModule } from '../shared/module/angular-material.module';
@Component({
selector: 'app-carnet-dialog',
imports: [AngularMaterialModule, CommonModule, ReactiveFormsModule],
template: `
{{title}}
`,
styles: [`
.form-row {
display: flex;
gap: 16px;
margin-top: 0.5rem;
align-items: start;
mat-form-field {
flex: 1;
margin-bottom: 6px;
}
}
`]
})
export class CarnetDialogComponent {
carnetAction: any | null = null;
carnetForm: FormGroup;
title: string = '';
private fb = inject(FormBuilder);
constructor(
public dialogRef: MatDialogRef,
@Inject(MAT_DIALOG_DATA) public data: { carnetAction: string }
) {
this.carnetAction = data.carnetAction;
this.carnetForm = this.fb.group({
carnetNumber: ['', Validators.required]
});
}
ngOnInit(): void {
this.setTitle();
}
setTitle(): void {
if (this.carnetAction === 'duplicate') {
this.title = 'Duplicate Carnet';
} else if (this.carnetAction === 'extend') {
this.title = 'Extend Carnet';
} else if (this.carnetAction === 'additional') {
this.title = 'Additional Sets';
}
}
onSubmit(): void {
this.dialogRef.close(this.carnetForm.value.carnetNumber);
}
onCancel(): void {
this.dialogRef.close();
}
}