import { Component } from '@angular/core'; import { DefaultLoginLayoutComponent } from '../../components/default-login-layout/default-login-layout.component'; import { FormControl, FormGroup, ReactiveFormsModule, Validators } from '@angular/forms'; import { PrimaryInputComponent } from '../../components/primary-input/primary-input.component'; import { Router } from '@angular/router'; import { LoginService } from '../../services/login.service'; import { ToastrService } from 'ngx-toastr'; interface SignupForm { name: FormControl, email: FormControl, password: FormControl, passwordConfirm: FormControl, role: FormControl } @Component({ selector: 'app-signup', standalone: true, imports: [ DefaultLoginLayoutComponent, ReactiveFormsModule, PrimaryInputComponent ], templateUrl: './signup.component.html', styleUrl: './signup.component.scss' }) export class SignUpComponent { signupForm!: FormGroup<SignupForm>; constructor( private router: Router, private loginService: LoginService, private toastService: ToastrService ){ this.signupForm = new FormGroup({ name: new FormControl('', [Validators.required, Validators.minLength(3)]), email: new FormControl('', [Validators.required, Validators.email]), password: new FormControl('', [Validators.required, Validators.minLength(6)]), passwordConfirm: new FormControl('', [Validators.required, Validators.minLength(6)]), role: new FormControl('', [Validators.required]), }) } submit(){ this.loginService.signup(this.signupForm.value.name, this.signupForm.value.email, this.signupForm.value.password, this.signupForm.value.role).subscribe({ next: () => {this.router.navigate([""]); this.toastService.success("cadastro feito com sucesso!") }, error: () => this.toastService.error("Erro inesperado! Tente novamente mais tarde") }) } navigate(){ this.router.navigate(["login"]) } }