import { Component, OnInit } from '@angular/core';
import { Router } from '@angular/router';
import { APIService } from '../services/api.service';
import { FormBuilder, FormGroup, Validators } from '@angular/forms';
import { MatSnackBar } from '@angular/material/snack-bar';
import { HttpErrorResponse } from '@angular/common/http';
@Component({
selector: 'app-login',
templateUrl: './login.component.html',
styleUrls: ['./login.component.scss']
})
export class LoginComponent implements OnInit {
loginFormGroup: FormGroup = this.fb.group({
emailaddress: ['', [Validators.required, Validators.email]],
password: ['', Validators.required],
})
isLoading:boolean = false
constructor(private router: Router, private apiService: APIService, private fb: FormBuilder, private snackBar: MatSnackBar) { }
ngOnInit(): void {
}
async LoginUser(){
if(this.loginFormGroup.valid)
{
this.isLoading = true
await this.apiService.LoginUser(this.loginFormGroup.value).subscribe(result => {
localStorage.setItem('User', JSON.stringify(result))
this.loginFormGroup.reset();
this.router.navigateByUrl('productListing');
})
}
}
}
<div class="login-wrapper" fxLayout="row" fxLayoutAlign="center center">
<mat-card class="box" *ngIf="!isLoading">
<mat-card-header>
<mat-card-title>Log in</mat-card-title>
</mat-card-header>
<form class="form" [formGroup]="loginFormGroup">
<mat-card-content>
<mat-form-field class="full-width">
<mat-label>Username</mat-label>
<input matInput placeholder="Enter the User's Email address" formControlName="emailaddress">
</mat-form-field>
<mat-form-field class="full-width">
<mat-label>Password</mat-label>
<input matInput type="password" placeholder="Enter the User's Password" formControlName="password">
</mat-form-field>
</mat-card-content>
<button mat-stroked-button color="primary" class="btn-block" (click)="LoginUser()">Log in</button>
<div>Don't have an account? Register <a [routerLink]="['../register']">here</a></div>
</form>
</mat-card>
<mat-progress-spinner mode="indeterminate" value="50" *ngIf="isLoading">
</mat-progress-spinner>
</div>
Preview:
downloadDownload PNG
downloadDownload JPEG
downloadDownload SVG
Tip: You can change the style, width & colours of the snippet with the inspect tool before clicking Download!
Click to optimize width for Twitter