import { auth } from '../firebase.js'; export const AUTH_SUCCESS = 'AUTH_SUCCESS'; export const AUTH_FAIL = 'AUTH_FAIL'; export const AUTH_SIGN_OUT = 'AUTH_SIGN_OUT'; export const UPDATE_ADMIN = 'UPDATE_ADMIN'; export const authFail = (errorCode) => { alert(errorCode); return { type: AUTH_FAIL, payload: false, uid: "", userEmail: "" } } export const authSuccess = (_user) => { alert('Success. Checkout the other pages to see what you can do!'); return { type: AUTH_SUCCESS, payload: true, uid: _user.uid, userEmail: _user.email } } export const authSignOut = () => { return { type: AUTH_SIGN_OUT, payload: false, uid: "", userEmail: "" } } //Middleware to dispatches, normally triggered by user. export const createAccount = (_email, _password, divison) => (dispatch) => { auth.createUserWithEmailAndPassword(_email, _password).then(() => { dispatch(signIn(_email, _password, divison)); }) .catch((error) => { alert(error.code + ": " + error.message); }); } import { setUserData, fetchDivison, snapshotHours, snapshotRegisteredCompetitions } from './firebaseFirestore.js'; import { adminListener } from './firebaseAdmin.js' export const signIn = (_email, _password, divison) => (dispatch) => { auth.signInWithEmailAndPassword(_email, _password).then(() => { var user = auth.currentUser; /* User is signed in. var displayName = user.displayName; var email = user.email; var emailVerified = user.emailVerified; var photoURL = user.photoURL; var isAnonymous = user.isAnonymous; var uid = user.uid; var providerData = user.providerData; */ dispatch(authSuccess(user)); if(divison) { dispatch(setUserData(divison)); } dispatch(fetchDivison()); dispatch(snapshotHours()) dispatch(snapshotRegisteredCompetitions()); //Admin controls if( user.uid === '4MYYFCFjQtOWxu2kQX7RtvEFzMv2' || //Bridget Denzer user.uid === 'sAVjlnSAETaP5VtTKGhfBKHKeQF2' //Michael Foiani ) { dispatch(adminListener()); } }) .catch((error) => { dispatch(authFail(error.code)); }); } export const signOut = () => (dispatch) => { auth.signOut().then(() => { dispatch(authSignOut()); }); }