@codehance/rapid-stack
Version:
A modern full-stack development toolkit for rapid application development
75 lines (64 loc) • 2.19 kB
text/typescript
import { Component, OnInit } from '@angular/core';
import { FormBuilder, FormGroup, Validators, ReactiveFormsModule } from '@angular/forms';
import { IonicModule } from '@ionic/angular';
import { CommonModule } from '@angular/common';
export class ProfilePage implements OnInit {
ownerProfileForm!: FormGroup;
dogProfileForm!: FormGroup;
passwordForm!: FormGroup;
constructor(private fb: FormBuilder) {}
ngOnInit() {
this.initializeForms();
}
private initializeForms() {
// Owner Profile Form
this.ownerProfileForm = this.fb.group({
firstName: ['', Validators.required],
lastName: ['', Validators.required],
email: ['', [Validators.required, Validators.email]],
phone: ['', Validators.required],
address: ['', Validators.required]
});
// Dog Profile Form
this.dogProfileForm = this.fb.group({
name: ['', Validators.required],
breed: ['', Validators.required],
age: ['', [Validators.required, Validators.min(0)]],
});
// Password Change Form
this.passwordForm = this.fb.group({
currentPassword: ['', Validators.required],
newPassword: ['', [Validators.required, Validators.minLength(8)]],
confirmPassword: ['', Validators.required]
}, { validator: this.passwordMatchValidator });
}
private passwordMatchValidator(g: FormGroup) {
return g.get('newPassword')?.value === g.get('confirmPassword')?.value
? null : { mismatch: true };
}
updateOwnerProfile() {
if (this.ownerProfileForm.valid) {
console.log('Owner Profile Update:', this.ownerProfileForm.value);
// TODO: Implement API call
}
}
updateDogProfile() {
if (this.dogProfileForm.valid) {
console.log('Dog Profile Update:', this.dogProfileForm.value);
// TODO: Implement API call
}
}
updatePassword() {
if (this.passwordForm.valid) {
console.log('Password Update:', this.passwordForm.value);
// TODO: Implement API call
}
}
}