File

src/app/user/register/register.component.ts

Metadata

selector app-register
styleUrls register.component.scss
templateUrl register.component.html

Constructor

constructor(auth: any, formBuilder: FormBuilder, route: ActivatedRoute)

Methods

onSubmit
onSubmit()
Returns: void

Properties

emailRegex
emailRegex: string
Default value: ^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+.)?[a-zA-Z]+.)?utexas.edu
error
error: string
f
f: any
FormGroup
FormGroup: any
loading
loading: boolean
Default value: false
registerForm
registerForm: boolean
returnUrl
returnUrl: string
Default value: /
Semesters
Semesters: string[]
submitted
submitted: boolean
Default value: false
import { Component, OnInit } from '@angular/core';
import { FormGroup, FormBuilder, Validators } from '@angular/forms';
import { ActivatedRoute } from '@angular/router';
import { AuthService } from 'src/app/services/auth/auth.service';

@Component({
  selector: 'app-register',
  templateUrl: './register.component.html',
  styleUrls: ['./register.component.scss']
})
export class RegisterComponent implements OnInit {
  registerForm!: FormGroup
  loading: boolean = false
  submitted: boolean = false
  returnUrl: string = '/'
  error: string = ''
  emailRegex: string = "^[a-zA-Z0-9_.+-]+@(?:(?:[a-zA-Z0-9-]+\.)?[a-zA-Z]+\.)?utexas\.edu"
  Semesters = [
    'Fall 2019',
    'Spring 2020',
    'Fall 2020',
    'Spring 2021'
  ]

  constructor(
    private auth: AuthService,
    private formBuilder: FormBuilder,
    private route: ActivatedRoute,
  ) { }

  ngOnInit(): void {
    this.registerForm = this.formBuilder.group({
      email: ['', [Validators.required, Validators.pattern(this.emailRegex)]],
      password: ['', [Validators.required, Validators.minLength(6)]],
      firstName: ['', Validators.required],
      lastName: ['', Validators.required],
      firstSemester: ['', Validators.required],
    })
    this.returnUrl = this.route.snapshot.queryParams['returnUrl'] || '/verifyEmail';

  }

  get f() {
    return this.registerForm?.controls
  }

  onSubmit() {
    this.submitted = true
    if(this.registerForm?.invalid){
      return
    }
    this.loading = true
    this.auth.signUp(this.f.email.value, 
                     this.f.password.value, 
                     this.f.firstName.value, 
                     this.f.lastName.value,
                     this.f.firstSemester.value)
      .then(() => {this.loading = false})
      .catch(error => {
        this.loading = false
        this.error = error
      })
  }

}

results matching ""

    No results matching ""