import React, { useCallback,useEffect, useState } from 'react'; import { View, Text, StyleSheet, Image,BackHandler,ActivityIndicator } from 'react-native'; import { TouchableOpacity } from 'react-native-gesture-handler'; import { useRouter } from 'expo-router'; import { BellRing } from 'lucide-react-native'; import COLORS from '@/constants/colors'; import { useFocusEffect } from '@react-navigation/native'; import { db } from '@/firebase/config'; // Firebase configuration import { doc, getDoc } from 'firebase/firestore'; import { getAuth } from 'firebase/auth'; // Import Firebase Authentication const UserHomeScreen = () => { const router = useRouter(); const [coffeeShopName, setCoffeeShopName] = useState(null); const [loading, setLoading] = useState(true); // Fetch the current user's UID const currentUser = getAuth().currentUser; // Get the current user from Firebase Authentication // Fetch coffee shop name based on the current user's ownerId useEffect(() => { const fetchCoffeeShopName = async () => { if (currentUser) { try { const docRef = doc(db, 'coffee_shops', currentUser.uid); // Use the user's UID to fetch data const docSnap = await getDoc(docRef); if (docSnap.exists()) { const data = docSnap.data(); setCoffeeShopName(data?.cafeName || "Nom de Café"); } else { console.log("No such coffee shop!"); setCoffeeShopName("Nom de Café"); } } catch (error) { console.error("Error fetching coffee shop data:", error); setCoffeeShopName("Nom de Café"); } finally { setLoading(false); } } }; fetchCoffeeShopName(); }, [currentUser]); // Empêcher retour arrière useFocusEffect( useCallback(() => { const onBackPress = () => true; BackHandler.addEventListener('hardwareBackPress', onBackPress); return () => BackHandler.removeEventListener('hardwareBackPress', onBackPress); }, []) ); return ( Bienvenue, {loading ? ( ) : ( {coffeeShopName} )} Nos Produits router.push('/screens/user/GrainsScreen')}> Grains de café Matériels ); } const styles = StyleSheet.create({ container: { flex: 1, backgroundColor: '#F8F9FA', }, header: { flexDirection: 'row', justifyContent: 'space-between', alignItems: 'center', padding: 15, marginTop:26, borderBottomWidth:0.2, borderColor:'#999', }, welcome: { fontSize: 16, color: '#666', }, shopName: { fontSize: 20, fontWeight: '700', color: '#333', }, notification:{ backgroundColor:COLORS.secondary, padding:8, borderRadius:8, borderColor:'#000', shadowColor: '#000', shadowOffset: { width: 0, height: 5, }, shadowOpacity: 0.2, shadowRadius: 10, elevation: 2, }, sectionTitle: { fontSize: 26, fontWeight: '900', color: '#666', alignSelf:'center', marginTop:10, }, categories: { flex: 1, padding: 15, justifyContent: 'space-evenly', }, categoryCard: { backgroundColor: COLORS.secondary, borderRadius: 16, marginBottom: 16, overflow: 'hidden', shadowColor: '#000', shadowOffset: { width: 0, height: 2, }, shadowOpacity: 0.1, shadowRadius: 4, elevation: 3, }, categoryImage: { width: '80%', alignSelf: 'center', height: 160, marginTop: 15, borderRadius:16, }, categoryTitle: { fontSize: 20, alignSelf:'center', fontWeight: '800', color: '#000', padding: 16, }, }); export default UserHomeScreen;