@@ -8,42 +8,58 @@ const firebaseConfig = {
88 storageBucket : "sbhs-year-8-chess-tournament.firebasestorage.app" ,
99 messagingSenderId : "632119283742" ,
1010 appId : "1:632119283742:web:ea2e5b59f5d80df1cede0f" ,
11- } ;
12-
13- firebase . initializeApp ( firebaseConfig ) ;
14- const auth = firebase . auth ( ) ;
15- const db = firebase . database ( ) ;
16-
17- const signInBtn = document . getElementById ( "googleSignInBtn" ) ;
18- const userInfo = document . getElementById ( "user-info" ) ;
19-
20- signInBtn . addEventListener ( "click" , ( ) => {
21- const provider = new firebase . auth . GoogleAuthProvider ( ) ;
22- auth . signInWithPopup ( provider )
23- . then ( ( result ) => {
24- const user = result . user ;
25- const email = user . email ;
26- console . log ( email ) ;
27- if ( ! email . endsWith ( "@student.sbhs.nsw.edu.au" ) ) {
28- alert ( "Please use your school Google account." ) ;
29- auth . signOut ( ) ;
30- return ;
31- }
32-
33- // Add user to database
34- const uid = user . uid ;
35- db . ref ( "users/" + uid ) . set ( {
36- name : user . displayName ,
37- email : user . email ,
38- score : 0
39- } ) ;
11+ } ;
12+
13+ firebase . initializeApp ( firebaseConfig ) ;
14+ const auth = firebase . auth ( ) ;
15+ const db = firebase . database ( ) ;
16+
17+ const signInBtn = document . getElementById ( "googleSignInBtn" ) ;
18+ const userInfo = document . getElementById ( "user-info" ) ;
19+
20+ signInBtn . addEventListener ( "click" , ( ) => {
21+ const provider = new firebase . auth . GoogleAuthProvider ( ) ;
22+ auth . signInWithPopup ( provider )
23+ . then ( ( result ) => {
24+ const user = result . user ;
25+ const email = user . email ;
26+ console . log ( email ) ;
27+ if ( ! email . endsWith ( "@student.sbhs.nsw.edu.au" ) ) {
28+ alert ( "Please use your school Google account." ) ;
29+ auth . signOut ( ) ;
30+ return ;
31+ }
32+
33+ // Add user to database
34+ const uid = user . uid ;
35+ db . ref ( "users/" + uid ) . set ( {
36+ name : user . displayName ,
37+ email : user . email ,
38+ score : 0
39+ } ) ;
40+
41+ userInfo . innerText = `Signed in as ${ user . displayName } ` ;
42+ signInBtn . style . display = "none" ;
43+ } )
44+ . catch ( ( error ) => {
45+ console . error ( "Sign-in error:" , error ) ;
46+ alert ( "Sign-in failed." ) ;
47+ } ) ;
48+ } ) ;
49+
50+ auth . onAuthStateChanged ( async ( user ) => {
51+ if ( user ) {
52+ const uid = user . uid ;
53+ const snapshot = await db . ref ( "users/" + uid ) . once ( "value" ) ;
54+ const userData = snapshot . val ( ) ;
4055
41- userInfo . innerText = `Signed in as ${ user . displayName } ` ;
42- signInBtn . style . display = "none" ;
43- } )
44- . catch ( ( error ) => {
45- console . error ( "Sign-in error:" , error ) ;
46- alert ( "Sign-in failed." ) ;
47- } ) ;
48- } ) ;
56+ if ( userData && userData . currentGameUrl ) {
57+ const link = document . createElement ( 'a' ) ;
58+ link . href = userData . currentGameUrl ;
59+ link . textContent = `Join your match as ${ userData . lichessColor } ` ;
60+ link . target = "_blank" ;
61+ document . body . appendChild ( link ) ;
62+ }
63+ }
64+ } ) ;
4965
0 commit comments