UNPKG

orb-ui-firebase

Version:

Firebase with redux

54 lines (49 loc) 1.56 kB
var _extends = Object.assign || function (target) { for (var i = 1; i < arguments.length; i++) { var source = arguments[i]; for (var key in source) { if (Object.prototype.hasOwnProperty.call(source, key)) { target[key] = source[key]; } } } return target; }; import * as types from './types'; export function authStateChanged(user) { return { type: types.AUTH_STATE_CHANGED, payload: user }; } export function authError(error) { return { type: types.AUTH_ERROR, payload: error }; } export function defaultUserData(user) { if (user != null) { return { displayName: user.displayName, email: user.email, photoURL: user.photoURL, emailVerified: user.emailVerified, isAnonymous: user.isAnonymous, uid: user.uid, providerData: user.providerData, isAuthorised: true }; } else { return { isAuthorised: false }; } } export function watchAuth(firebaseApp, onAuthStateChanged, onAuthError) { return function (dispatch) { firebaseApp.auth().onAuthStateChanged(function (user) { if (onAuthStateChanged && onAuthStateChanged instanceof Function) { dispatch(authStateChanged(_extends({ isAuthorised: !!user }, onAuthStateChanged(user)))); } else { dispatch(authStateChanged(_extends({ isAuthorised: !!user }, defaultUserData(user)))); } }, function (error) { if (onAuthError && onAuthError instanceof Function) { dispatch(authError(error)); } else { dispatch(authError(error)); } }); }; }