Files
musicland/src/screens/Splash.js
T
2026-08-25 15:55:11 +02:00

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>
}