aboutsummaryrefslogtreecommitdiff
path: root/Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts
diff options
context:
space:
mode:
author杨宇千 <crupest@outlook.com>2019-03-06 23:29:12 +0800
committerGitHub <noreply@github.com>2019-03-06 23:29:12 +0800
commit4b37c96de2c7d3fe046a6f342d2da8ef03d3c807 (patch)
treee5618cddfa6f637d7033ae5b52e6da825eb53c63 /Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts
parentaca753fba19a221f1aec65030ba4aec4bc34f576 (diff)
parentb5e01c4571061cbaf5915aa4c0f1b7126ef1ed18 (diff)
downloadtimeline-4b37c96de2c7d3fe046a6f342d2da8ef03d3c807.tar.gz
timeline-4b37c96de2c7d3fe046a6f342d2da8ef03d3c807.tar.bz2
timeline-4b37c96de2c7d3fe046a6f342d2da8ef03d3c807.zip
Merge pull request #3 from crupest/user
Develop user dialog.
Diffstat (limited to 'Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts')
-rw-r--r--Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts43
1 files changed, 43 insertions, 0 deletions
diff --git a/Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts b/Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts
new file mode 100644
index 00000000..7511de16
--- /dev/null
+++ b/Timeline/ClientApp/src/app/user/user-dialog/user-dialog.component.ts
@@ -0,0 +1,43 @@
+import { Component, OnInit } from '@angular/core';
+import { UserInfo } from '../user-info';
+import { UserService } from '../user-service/user.service';
+import { LoginEvent, LoginMessage } from '../user-login/user-login.component';
+
+@Component({
+ selector: 'app-user-dialog',
+ templateUrl: './user-dialog.component.html',
+ styleUrls: ['./user-dialog.component.css']
+})
+export class UserDialogComponent implements OnInit {
+
+ constructor(private userService: UserService) { }
+
+ state: 'loading' | 'login' | 'success' = 'loading';
+
+ loginMessage: LoginMessage;
+
+ displayLoginSuccessMessage = false;
+ userInfo: UserInfo;
+
+ ngOnInit() {
+ this.userService.validateUserLoginState().subscribe(result => {
+ if (result.state === 'success') {
+ this.userInfo = result.userInfo;
+ this.state = 'success';
+ } else {
+ this.loginMessage = result.state;
+ this.state = 'login';
+ }
+ });
+ }
+
+ login(event: LoginEvent) {
+ this.userService.tryLogin(event.username, event.password).subscribe(result => {
+ this.userInfo = result;
+ this.displayLoginSuccessMessage = true;
+ this.state = 'success';
+ }, (error: Error) => {
+ this.loginMessage = error.message;
+ });
+ }
+}