From bf80903fde923e0c84226ac442a2a382db74aee4 Mon Sep 17 00:00:00 2001 From: Chocobozzz Date: Fri, 27 Aug 2021 09:26:45 +0200 Subject: [PATCH] Don't display account setup modal on signup Don't bother user with a modal just after signup --- client/src/app/core/users/user.service.ts | 9 ++++++++- client/src/app/modal/account-setup-modal.component.ts | 10 ++++++---- 2 files changed, 14 insertions(+), 5 deletions(-) diff --git a/client/src/app/core/users/user.service.ts b/client/src/app/core/users/user.service.ts index a8a774eca..be9e66c3c 100644 --- a/client/src/app/core/users/user.service.ts +++ b/client/src/app/core/users/user.service.ts @@ -1,6 +1,6 @@ import { SortMeta } from 'primeng/api' import { from, Observable, of } from 'rxjs' -import { catchError, concatMap, filter, first, map, shareReplay, throttleTime, toArray } from 'rxjs/operators' +import { catchError, concatMap, filter, first, map, shareReplay, tap, throttleTime, toArray } from 'rxjs/operators' import { HttpClient, HttpParams } from '@angular/common/http' import { Injectable } from '@angular/core' import { AuthService } from '@app/core/auth' @@ -28,6 +28,8 @@ export class UserService { private userCache: { [ id: number ]: Observable } = {} + private signupInThisSession = false + constructor ( private authHttp: HttpClient, private authService: AuthService, @@ -37,6 +39,10 @@ export class UserService { private sessionStorageService: SessionStorageService ) { } + hasSignupInThisSession () { + return this.signupInThisSession + } + changePassword (currentPassword: string, newPassword: string) { const url = UserService.BASE_USERS_URL + 'me' const body: UserUpdateMe = { @@ -153,6 +159,7 @@ export class UserService { return this.authHttp.post(UserService.BASE_USERS_URL + 'register', userCreate) .pipe( map(this.restExtractor.extractDataBool), + tap(() => this.signupInThisSession = true), catchError(err => this.restExtractor.handleError(err)) ) } diff --git a/client/src/app/modal/account-setup-modal.component.ts b/client/src/app/modal/account-setup-modal.component.ts index e5d36e006..8256f5103 100644 --- a/client/src/app/modal/account-setup-modal.component.ts +++ b/client/src/app/modal/account-setup-modal.component.ts @@ -1,5 +1,5 @@ import { Component, ElementRef, OnInit, ViewChild } from '@angular/core' -import { AuthService, ServerService, User } from '@app/core' +import { AuthService, ServerService, User, UserService } from '@app/core' import { NgbModal, NgbModalRef } from '@ng-bootstrap/ng-bootstrap' import { HTMLServerConfig } from '@shared/models' @@ -17,6 +17,7 @@ export class AccountSetupModalComponent implements OnInit { private serverConfig: HTMLServerConfig constructor ( + private userService: UserService, private authService: AuthService, private modalService: NgbModal, private serverService: ServerService @@ -49,8 +50,9 @@ export class AccountSetupModalComponent implements OnInit { this.authService.userInformationLoaded .subscribe( () => { - if (this.isUserRoot) return false - if (this.hasAccountAvatar && this.hasAccountDescription) return false + if (this.isUserRoot) return + if (this.hasAccountAvatar && this.hasAccountDescription) return + if (this.userService.hasSignupInThisSession()) return this.show() } @@ -58,7 +60,7 @@ export class AccountSetupModalComponent implements OnInit { } show () { - if (this.ref) return false + if (this.ref) return this.ref = this.modalService.open(this.modal, { centered: true,