From 25004e7678c1958cd5a63fd825d4378cb411e2ae Mon Sep 17 00:00:00 2001 From: Timothy Alcaide Date: Wed, 10 Apr 2024 14:24:30 +0200 Subject: [PATCH] refactor: form component --- .../src/app/ui/form.component.ts | 32 ++++++++++++++----- 1 file changed, 24 insertions(+), 8 deletions(-) diff --git a/apps/angular/dialog-alert-form/src/app/ui/form.component.ts b/apps/angular/dialog-alert-form/src/app/ui/form.component.ts index 514a7b6..2b28c54 100644 --- a/apps/angular/dialog-alert-form/src/app/ui/form.component.ts +++ b/apps/angular/dialog-alert-form/src/app/ui/form.component.ts @@ -1,17 +1,19 @@ -import { ChangeDetectionStrategy, Component } from '@angular/core'; +import { ChangeDetectionStrategy, Component, inject } from '@angular/core'; +import { FormBuilder, ReactiveFormsModule, Validators } from '@angular/forms'; @Component({ selector: 'app-form', standalone: true, + imports: [ReactiveFormsModule], template: ` -
+
@@ -22,7 +24,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; class="w-full rounded-lg border-gray-200 p-3 text-sm" placeholder="Email address" type="email" - name="email" + formControlName="email" id="email" /> @@ -32,7 +34,7 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; class="w-full rounded-lg border-gray-200 p-3 text-sm" placeholder="Phone Number" type="tel" - name="phone" + formControlName="phone" id="phone" /> @@ -44,14 +46,15 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; class="w-full rounded-lg border-gray-200 p-3 text-sm" placeholder="Message" rows="8" - name="message" + formControlName="message" id="message">
@@ -59,4 +62,17 @@ import { ChangeDetectionStrategy, Component } from '@angular/core'; `, changeDetection: ChangeDetectionStrategy.OnPush, }) -export class FormComponent {} +export class FormComponent { + private fb = inject(FormBuilder); + + form = this.fb.nonNullable.group({ + name: ['', { validators: [Validators.required] }], + email: ['', [Validators.required, Validators.email]], // other syntax + phone: '', + message: '', + }); + + onSubmit() { + if (this.form.valid) this.form.reset(); + } +}