frontend-smartfarming/agrilink_vocpro/src/app/pages/register/register.component.ts

67 lines
1.8 KiB
TypeScript

import { Component, OnInit } from '@angular/core'; // Import OnInit
import { Router, RouterModule } from '@angular/router';
import { AuthService } from '../../cores/services/auth.service';
import { FormsModule } from '@angular/forms';
import { RegistrationData } from '../../cores/interface/auth';
import { ToastrService } from 'ngx-toastr';
import { CommonModule } from '@angular/common';
@Component({
selector: 'app-register',
standalone: true,
imports: [FormsModule, RouterModule, CommonModule],
templateUrl: './register.component.html',
styleUrls: ['./register.component.scss']
})
export class RegisterComponent implements OnInit {
username: string = '';
password: string = '';
email: string = '';
fullname: string = '';
loading: boolean = false;
passwordVisible: boolean = false;
constructor(private authService: AuthService, private router: Router, private toast: ToastrService) {}
ngOnInit(): void {
this.username = '';
this.password = '';
this.email = '';
this.fullname = '';
}
togglePasswordVisibility() {
this.passwordVisible = !this.passwordVisible;
}
onSubmit() {
this.loading = true;
if (!this.username || !this.password || !this.email || !this.fullname) {
this.loading = false;
this.toast.error('Please fill in all fields.');
return;
}
const registrationData: RegistrationData = {
username: this.username,
pwd: this.password,
email: this.email,
google_id: '1',
fullname: this.fullname,
avatar: ''
};
this.authService.register(registrationData).subscribe(
(response) => {
this.loading = false;
this.toast.success('Registration successful');
this.router.navigate(['/auth']);
},
(error) => {
this.loading = false;
this.toast.error(error.error.message);
}
);
}
}