join/src/app/components/login/register/register.component.ts
2024-06-11 17:59:16 +02:00

78 lines
2.3 KiB
TypeScript

import { Component } from '@angular/core';
import { HeaderComponent } from '../header/header.component';
import { FooterComponent } from '../footer/footer.component';
import { FormsModule, NgForm } from '@angular/forms';
import { CommonModule } from '@angular/common';
import { FormBtnComponent } from '../../../shared/components/buttons/form-btn/form-btn.component';
import { FirebaseService } from '../../../services/firebase.service';
import { LoginService } from '../../../services/login.service';
import { SharedService } from '../../../services/shared.service';
import { BtnBackComponent } from '../../../shared/components/buttons/btn-back/btn-back.component';
import { RouterModule } from '@angular/router';
import { TranslateModule, TranslateService } from '@ngx-translate/core';
import { LoadingDialogComponent } from '../loading-dialog/loading-dialog.component';
@Component({
selector: 'app-register',
standalone: true,
imports: [
HeaderComponent,
FooterComponent,
FormBtnComponent,
BtnBackComponent,
FormsModule,
CommonModule,
RouterModule,
TranslateModule,
LoadingDialogComponent,
],
templateUrl: './register.component.html',
styleUrl: './register.component.scss',
})
export class RegisterComponent {
registerData = {
name: '',
firstName: '',
lastName: '',
mail: '',
password: '',
passwordConfirm: '',
checkboxState: '',
};
constructor(
private firebaseService: FirebaseService,
public loginService: LoginService,
public sharedService: SharedService,
public translateService: TranslateService
) {}
onSubmit(ngForm: NgForm) {
this.sharedService.isBtnDisabled = true;
if (ngForm.submitted && ngForm.form.valid) {
this.splitName();
this.loginService.register(this.registerData);
}
}
splitName() {
const names = this.registerData.name.split(' ');
this.registerData.firstName = names[0];
this.registerData.lastName = names.slice(1).join(' ');
}
existEmailOnServer(mail: string) {
return this.firebaseService
.getAllUsers()
.filter((user) => user.email === mail);
}
checkIfUserEmailIsValid(emailValue: string) {
const emailRegex = /^[\w.%+-]+@[\w.-]+\.[a-zA-Z]{2,}$/;
if (emailRegex.test(emailValue)) {
return true;
} else {
return false;
}
}
}