diff --git a/src/app/core/auth/auth.service.ts b/src/app/core/auth/auth.service.ts index 4a30300fc1bafea707633ab9bc4844a79067b48f..52cec91f2858e664101be6c9b098f2babbfa341f 100644 --- a/src/app/core/auth/auth.service.ts +++ b/src/app/core/auth/auth.service.ts @@ -35,7 +35,7 @@ export class AuthService { this.user$ = new BehaviorSubject(initialUser); } - login(username: string, password: string) { + login(username: string, password: string): Observable<boolean> { return this.http.post<any>(this.loginUrl, { username: username, password: password }).pipe( tap(data => this.token.set(data.token)), map(data => this.userAdapter.adapt(data.user)), diff --git a/src/app/members/projects/overview/overview.component.scss b/src/app/members/projects/overview/overview.component.scss index b3f289014c493f7fd5553e463a628c7bde7c7e5b..1fe80a21edceac227f4c8250e2d35442b47a1b8e 100644 --- a/src/app/members/projects/overview/overview.component.scss +++ b/src/app/members/projects/overview/overview.component.scss @@ -6,7 +6,7 @@ } #my-participations { - background: lighten($color-purple-light, 15); + background: $color-purple-lighter; } #page { diff --git a/src/app/members/student-home/student-home.component.scss b/src/app/members/student-home/student-home.component.scss index 4b741780e8ca7375acc23a77fbd2a59265b3b0ba..eb3c7e0d7f567ac81c6d58d424a3b9b03a251b1a 100644 --- a/src/app/members/student-home/student-home.component.scss +++ b/src/app/members/student-home/student-home.component.scss @@ -6,11 +6,11 @@ } #visits { - // TODO use a background image + // TODO use a background image? background: $color-light-blue; } #projects { - // TODO use a background image - background: $color-purple-light; + // TODO use a background image? + background: $color-purple-lighter; } diff --git a/src/app/signup/student-signup/student-signup.component.html b/src/app/signup/student-signup/student-signup.component.html index 542d303b5be9435964fe00c6345c0fae4f50c03f..d5e1b7e33beaec08b50c6ca82b53f9ba5038ff7d 100644 --- a/src/app/signup/student-signup/student-signup.component.html +++ b/src/app/signup/student-signup/student-signup.component.html @@ -80,9 +80,13 @@ </mat-form-field> <div class="text-center"> - <button mat-raised-button color="primary" [disabled]="!formGroup.valid">M'inscrire</button> + <button mat-raised-button color="primary" [disabled]="!formGroup.valid || loading"> + M'inscrire + <app-load-spinner *ngIf="loading" [block]="false"></app-load-spinner> + </button> </div> + <p class="text-center"> J'ai déjà un compte ! <a routerLink="/connexion">Me connecter</a> </p> diff --git a/src/app/signup/student-signup/student-signup.component.ts b/src/app/signup/student-signup/student-signup.component.ts index d05cfb6a719a9fd236ea3a09c70c310bc7d432d5..ac78486756ca5897ca1c0deb38a2dc775ba6052c 100644 --- a/src/app/signup/student-signup/student-signup.component.ts +++ b/src/app/signup/student-signup/student-signup.component.ts @@ -3,7 +3,7 @@ import { FormGroup, FormBuilder, Validators } from '@angular/forms'; import { Router } from '@angular/router'; import { MatSnackBar } from '@angular/material'; import { Observable } from 'rxjs'; -import { tap } from 'rxjs/operators'; +import { tap, mergeMap } from 'rxjs/operators'; import { Registration, RegistrationService, PasswordErrorStateMatcher } from '../core'; import { AuthService } from 'app/core'; @@ -17,6 +17,7 @@ export class StudentSignupComponent implements OnInit { registration: Registration; formGroup: FormGroup; + loading = false; matcher = new PasswordErrorStateMatcher(); @@ -52,16 +53,21 @@ export class StudentSignupComponent implements OnInit { } submit() { + this.loading = true; const registration: Registration = this.formGroup.value; const password: string = this.formGroup.controls.password.value; this.registrationService.create(registration, password).pipe( - tap(() => this.auth.login(registration.email, password)), + mergeMap(() => this.auth.login(registration.email, password)), tap(() => this.snackBar.open( `Ton compte a été créé ! Tu es maintenant connecté.`, 'OK', { duration: 3000 }, )), + tap(() => this.loading = false), tap(() => this.router.navigate(['/'])), - ).subscribe(); + ).subscribe( + () => {}, + (error) => this.loading = false, + ); } } diff --git a/src/sass/_variables.scss b/src/sass/_variables.scss index 34c60cc6f5a55a9becfed72208200e8f0340e65f..8bfcba041604a375292e7d62d2959503310a2b62 100644 --- a/src/sass/_variables.scss +++ b/src/sass/_variables.scss @@ -3,6 +3,7 @@ $color-darkest-blue: rgb(32, 26, 78); $color-dark-blue: rgb(46, 37, 128); $color-purple: rgb(99, 92, 161); $color-purple-light: rgb(151, 146, 192); +$color-purple-lighter: lighten($color-purple-light, 15); $color-turquoise: rgb(43, 181, 186); $color-light-blue: rgb(213, 250, 255); $color-accent: #F3395E;