diff --git a/package-lock.json b/package-lock.json index b9a4b2864..e7ef4aef9 100644 --- a/package-lock.json +++ b/package-lock.json @@ -7657,6 +7657,11 @@ "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=", "dev": true }, + "ngx-bootstrap": { + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/ngx-bootstrap/-/ngx-bootstrap-6.2.0.tgz", + "integrity": "sha512-5WKHo6/ltkenw4UyXZwED8rODCgp2RGbWurzYzZsF/gH1JO5SN7TJ+AL6kXYk6XM42sDA2WhN9Db+ZPNjiyHnA==" + }, "ngx-toastr": { "version": "13.2.0", "resolved": "https://registry.npmjs.org/ngx-toastr/-/ngx-toastr-13.2.0.tgz", diff --git a/package.json b/package.json index 7ac1e50d1..c5eee6677 100644 --- a/package.json +++ b/package.json @@ -24,6 +24,7 @@ "@ng-bootstrap/ng-bootstrap": "^8.0.0", "bootstrap": "^4.5.0", "font-awesome": "^4.7.0", + "ngx-bootstrap": "^6.2.0", "ngx-toastr": "^13.2.0", "rxjs": "~6.6.0", "tslib": "^2.0.0", diff --git a/src/app/_services/account.service.ts b/src/app/_services/account.service.ts index 99b4ab171..073d3f8b4 100644 --- a/src/app/_services/account.service.ts +++ b/src/app/_services/account.service.ts @@ -16,7 +16,8 @@ export class AccountService { private currentUserSource = new ReplaySubject(1); currentUser$ = this.currentUserSource.asObservable(); // $ at end is because this is observable - constructor(private httpClient: HttpClient) { } + constructor(private httpClient: HttpClient) { + } login(model: any): Observable { return this.httpClient.post(this.baseUrl + 'account/login', model).pipe( diff --git a/src/app/app.component.ts b/src/app/app.component.ts index bed58454e..0944f2a6c 100644 --- a/src/app/app.component.ts +++ b/src/app/app.component.ts @@ -1,10 +1,26 @@ -import { Component } from '@angular/core'; +import { Component, OnInit } from '@angular/core'; +import { User } from './_models/user'; +import { AccountService } from './_services/account.service'; @Component({ selector: 'app-root', templateUrl: './app.component.html', styleUrls: ['./app.component.scss'] }) -export class AppComponent { - title = 'kavita-webui'; +export class AppComponent implements OnInit { + + constructor(private accountService: AccountService) { } + + ngOnInit(): void { + this.setCurrentUser(); + } + + + setCurrentUser() { + const userString = localStorage.getItem('user'); + if (userString !== '' || localStorage.getItem('user') !== undefined) { + const user: User = JSON.parse(userString + ''); + this.accountService.setCurrentUser(user); + } + } } diff --git a/src/app/home/home.component.html b/src/app/home/home.component.html index 7f0af61dd..f66516577 100644 --- a/src/app/home/home.component.html +++ b/src/app/home/home.component.html @@ -4,6 +4,14 @@

Please create an admin account for yourself to start your reading journey.

+
+

Error:

+
    + +
+
diff --git a/src/app/home/home.component.ts b/src/app/home/home.component.ts index ed3774985..5e6a6387a 100644 --- a/src/app/home/home.component.ts +++ b/src/app/home/home.component.ts @@ -26,9 +26,17 @@ export class HomeComponent implements OnInit { ngOnInit(): void { - this.memberService.getMembers().subscribe(members => { - this.firstTimeFlow = members.filter(m => m.isAdmin).length === 0; - console.log('First time user flow: ', this.firstTimeFlow); + // TODO: Clean up this logic + this.accountService.currentUser$.pipe(take(1)).subscribe(user => { + if (user) { + // User is logged in, redirect to libraries + this.router.navigateByUrl('/library'); + } else { + this.memberService.getMembers().subscribe(members => { + this.firstTimeFlow = members.filter(m => m.isAdmin).length === 0; + console.log('First time user flow: ', this.firstTimeFlow); + }); + } }); } @@ -41,6 +49,7 @@ export class HomeComponent implements OnInit { this.router.navigateByUrl('/library'); }, err => { console.log('validation errors from interceptor', err); + //this.errors = err; }); } diff --git a/src/app/nav-header/nav-header.component.html b/src/app/nav-header/nav-header.component.html index 0a294b029..f64cb72be 100644 --- a/src/app/nav-header/nav-header.component.html +++ b/src/app/nav-header/nav-header.component.html @@ -13,10 +13,11 @@ -
-
diff --git a/src/app/user-login/user-login.component.ts b/src/app/user-login/user-login.component.ts index 5fa445fd3..31a72811f 100644 --- a/src/app/user-login/user-login.component.ts +++ b/src/app/user-login/user-login.component.ts @@ -31,10 +31,4 @@ export class UserLoginComponent implements OnInit { }); } - cancel() { - this.loginForm.reset(); - // Goes back to previous router state (using back in history) - //this.router.p - } - }