import {Component, inject} from '@angular/core'; import {FormBuilder, ReactiveFormsModule, Validators} from "@angular/forms"; import QualificationService from "../../services/qualification.service"; import {MatDialogActions, MatDialogContent, MatDialogRef, MatDialogTitle} from "@angular/material/dialog"; import {NgIf} from "@angular/common"; import {MatError, MatFormField, MatLabel} from "@angular/material/form-field"; import {MatButton} from "@angular/material/button"; import {MatInput} from "@angular/material/input"; import {filter} from "rxjs"; @Component({ selector: 'app-create-qualification', imports: [ ReactiveFormsModule, MatError, NgIf, MatLabel, MatDialogTitle, MatDialogContent, MatFormField, MatDialogActions, MatButton, MatInput ], templateUrl: './create.component.html', styleUrl: './create.component.css' }) export class CreateComponent { private formBuilder: FormBuilder = inject(FormBuilder); private qualificationService: QualificationService = inject(QualificationService); private dialogRef: MatDialogRef = inject(MatDialogRef); public apiErrorMessage: string = ''; qualificationForm = this.formBuilder.group({ 'skill': ['', Validators.required], }); isFieldInvalid(fieldName: string): boolean { const field = this.qualificationForm.get(fieldName); if (!field) { throw new Error('Form field does not exist: ' + fieldName) } return field.invalid && (field.dirty || field.touched); } getErrorMessage(fieldName: string): string { const field = this.qualificationForm.get(fieldName); if (field?.errors?.['required']) { return 'This field is required'; } return ''; } create() { if (!this.qualificationForm.valid) { console.error('Validation failed'); return; } this.qualificationService.create(this.qualificationForm.value).subscribe({ next: (createdQualification) => { this.dialogRef.close(createdQualification); }, error: (error) => { console.error('Error creating qualification:', error); this.apiErrorMessage = 'API Error'; } }); } }