import React, { useEffect, useState } from 'react'; import {View, StyleSheet, Text } from "react-native"; import { useTheme } from "react-native-paper"; import { v4 as uuidv4 } from "uuid"; import AsyncStorage from "@react-native-async-storage/async-storage"; import ProfileScreen from "@/app/ProfileScreen"; import StatusPage from "@/app/StatusPage"; import Nav from "@/app/Nav"; const Index = () => { const { colors } = useTheme(); const [isProfileActive, setProfileActive] = useState(false); const [userId, setUserId] = useState(""); const [userName, setUserName] = useState(""); const [userImage, setUserImage] = useState(""); const [userStatus, setUserStatus] = useState(""); const [userDataChanged, setUserDataChanged] = useState(false); const [isLoading, setIsLoading] = useState(true); // New loading state useEffect(() => { const loadUserData = async () => { try { const storedUserId = await AsyncStorage.getItem("userId"); const storedUserName = await AsyncStorage.getItem("userName"); const storedUserImage = await AsyncStorage.getItem("userImage"); if (storedUserId) { setUserId(storedUserId || uuidv4()); setUserName(storedUserName || ""); setUserImage(storedUserImage || ""); setProfileActive(false); } else { setUserId(uuidv4()); setUserName(""); setUserImage(""); setProfileActive(true); } console.log("Loading data ", userId); } catch (error) { console.error("Error loading user data:", error); } finally { setIsLoading(false); // Mark loading as complete } }; loadUserData(); }, []); useEffect(() => { if (!userDataChanged) return; const saveUserData = async () => { try { console.log("Saving data ", userId); await AsyncStorage.setItem("userId", userId); await AsyncStorage.setItem("userName", userName); await AsyncStorage.setItem("userImage", userImage); setUserDataChanged(false); } catch (error) { console.error("Error saving user data:", error); } }; saveUserData(); }, [userDataChanged]); if (isLoading) { console.log("Still loading"); return ( Loading... ); } return (