-
Notifications
You must be signed in to change notification settings - Fork 3
/
app.component.ts
84 lines (72 loc) · 2.46 KB
/
app.component.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
// Angular modules
import { Component } from '@angular/core';
import { OnInit } from '@angular/core';
import { OnDestroy } from '@angular/core';
import { Router } from '@angular/router';
// External modules
import { Subscription } from 'rxjs';
import { TranslateService } from '@ngx-translate/core';
// Helpers
import { CognitoHelper } from './shared/helpers/cognito.helper';
@Component({
selector : 'app-root',
templateUrl : './app.component.html',
styleUrls : ['./app.component.scss']
})
export class AppComponent implements OnInit, OnDestroy
{
public isAuthenticated : boolean = false;
// Subscriptions
private signInSub : Subscription;
private signOutSub : Subscription;
constructor
(
private cognitoHelper : CognitoHelper,
private router : Router,
private translateService : TranslateService
)
{
// This language will be used as a fallback when a translation isn't found in the current language
this.translateService.setDefaultLang('en');
// The lang to use, if the lang isn't available, it will use the current loader to get them
this.translateService.use('en');
}
public ngOnInit() : void
{
this.isAuthenticated = this.cognitoHelper.cognitoService.isAuthenticated();
if (this.isAuthenticated)
{
this.cognitoHelper.cognitoService.updateCredentials();
this.cognitoHelper.cognitoService.autoRefreshSession();
}
this.signInSub = this.signInSubscription();
this.signOutSub = this.signOutSubscription();
}
public ngOnDestroy() : void
{
this.signInSub.unsubscribe();
this.signOutSub.unsubscribe();
}
// -------------------------------------------------------------------------------------------
// ---- NOTE: Subscription -------------------------------------------------------------------
// -------------------------------------------------------------------------------------------
private signInSubscription() : Subscription
{
let signInSub : Subscription = null;
signInSub = this.cognitoHelper.cognitoService.onSignIn.subscribe(() =>
{
this.isAuthenticated = true;
});
return signInSub;
}
private signOutSubscription() : Subscription
{
let signOutSub : Subscription = null;
signOutSub = this.cognitoHelper.cognitoService.onSignOut.subscribe(() =>
{
this.isAuthenticated = false;
this.router.navigate(['/login']);
});
return signOutSub;
}
}