47 lines
1.2 KiB
JavaScript
47 lines
1.2 KiB
JavaScript
import { View } from 'react-native'
|
|
import React, { useContext, useEffect } from 'reactn'
|
|
|
|
import firebase, { usersRef } from '../config/firebase'
|
|
import { Routes } from '../navigation'
|
|
|
|
import { SplashAnimationContext } from '../providers/SplashAnimationProvider'
|
|
import { UserDataContext } from '../providers/UserDataProvider'
|
|
|
|
export default ({ navigation }) => {
|
|
const { setCurrentUserData } = useContext(UserDataContext)
|
|
const { setIsFullyLoaded } = useContext(SplashAnimationContext)
|
|
|
|
useEffect(() => {
|
|
userRouting()
|
|
}, [])
|
|
|
|
const userRouting = async () => {
|
|
const uid = firebase.auth().currentUser?.uid
|
|
|
|
if (!uid) {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: Routes.LandingPage }],
|
|
})
|
|
setIsFullyLoaded(true)
|
|
return
|
|
}
|
|
|
|
try {
|
|
const userSnap = await usersRef.doc(uid).get()
|
|
const user = userSnap?.data() || {}
|
|
if (userSnap.exists) setCurrentUserData(user)
|
|
} catch (error) {
|
|
console.warn('Splash: unable to load user profile', error)
|
|
} finally {
|
|
navigation.reset({
|
|
index: 0,
|
|
routes: [{ name: Routes.LandingPage }],
|
|
})
|
|
setIsFullyLoaded(true)
|
|
}
|
|
}
|
|
|
|
return <View style={{ flex: 1 }}></View>
|
|
}
|