import { Component, inject } from '@angular/core'; import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms'; import { NgIf } from '@angular/common'; import { MatDialogModule, MatDialogRef } from '@angular/material/dialog'; import { MatFormFieldModule } from '@angular/material/form-field'; import { MatInputModule } from '@angular/material/input'; import { MatButtonModule } from '@angular/material/button'; import { SiteService } from '../../core/services/site.service'; @Component({ selector: 'app-create-site-dialog', standalone: true, imports: [NgIf, MatDialogModule, MatFormFieldModule, MatInputModule, MatButtonModule, ReactiveFormsModule], template: `

Create New Site

Site Name Name is required Description (optional)
`, }) export class CreateSiteDialog { private fb = inject(FormBuilder); private dialogRef = inject(MatDialogRef); private siteService = inject(SiteService); form = this.fb.group({ name: ['', Validators.required], description: [''], }); loading = false; onCreate(): void { if (this.form.invalid) return; this.loading = true; this.siteService.create(this.form.value as any).subscribe({ next: (site) => { this.dialogRef.close(site); }, error: () => { this.loading = false; }, }); } }