-
Notifications
You must be signed in to change notification settings - Fork 0
/
main.js
69 lines (62 loc) · 2.02 KB
/
main.js
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
// Initialize Firebase
const app = firebase.initializeApp({
apiKey: 'AIzaSyCorShCqZfvE16_tNyvygbfSy5o8EQFK0E',
authDomain: 'yaba-0.firebaseapp.com',
projectId: 'yaba-0',
storageBucket: 'yaba-0.appspot.com',
messagingSenderId: '297298616389',
appId: '1:297298616389:web:2bc5edde8d9a8cdaf4032c',
});
const firebaseAuth = firebase.auth();
// FirebaseUI config.
const uiConfig = {
signInOptions: [
firebase.auth.GoogleAuthProvider.PROVIDER_ID,
// TODO: set up the following authentication methods.
// firebase.auth.FacebookAuthProvider.PROVIDER_ID,
// firebase.auth.TwitterAuthProvider.PROVIDER_ID,
// firebase.auth.EmailAuthProvider.PROVIDER_ID,
],
callbacks: {
signInSuccessWithAuthResult: (/* authResult */) => {
hideSignin();
return false;
},
uiShown: () => {
document.getElementById('loader-container').classList.add('d-none');
showSignin();
},
},
};
// Initialize the FirebaseUI Widget using Firebase.
const ui = new firebaseui.auth.AuthUI(firebaseAuth);
const firebaseuiAuthContainer = document.getElementById(
'firebaseui-auth-container'
);
// The start method will wait until the DOM is loaded.
ui.start(firebaseuiAuthContainer, uiConfig);
const signoutButton = document.getElementById('signout');
const signinCard = document.getElementById('signin-card');
const routerOutlet = document.getElementById('router-outlet');
signoutButton.addEventListener('click', async () => {
await firebaseAuth.signOut();
showSignin();
ui.start(firebaseuiAuthContainer, uiConfig);
});
function showSignin() {
signoutButton.classList.replace('d-flex', 'd-none');
signinCard.classList.remove('d-none');
routerOutlet.classList.add('d-none');
}
function hideSignin() {
signoutButton.classList.replace('d-none', 'd-flex');
signinCard.classList.add('d-none');
routerOutlet.classList.remove('d-none');
}
firebaseAuth.onAuthStateChanged((user) => {
if (user) {
hideSignin();
} else {
showSignin();
}
});