"use client"; import { Image } from "expo-image"; import { useEffect, useState } from "react"; import { ActivityIndicator, ScrollView, Text, TouchableOpacity, View, } from "react-native"; import { SafeAreaView } from "react-native-safe-area-context"; import { useAuth } from "@/context/auth-context"; import { getProfile } from "@/services/data/profile"; import { supabase } from "@/services/supabase"; export default function ProfileScreen() { const [activeTab, setActiveTab] = useState("Repost"); const [username, setUsername] = useState(null); const [loading, setLoading] = useState(true); const [error, setError] = useState(null); const { isAuthenticated } = useAuth(); useEffect(() => { const fetchProfile = async () => { setLoading(true); setError(null); try { const { data: userData, error: userError } = await supabase.auth.getUser(); if (userError || !userData?.user?.id) { setError("Unable to get user info."); setUsername(null); setLoading(false); return; } const { data, error } = await getProfile(userData.user.id); if (error) { setError(error.message || "Failed to fetch profile"); setUsername(null); } else { setUsername(data?.username || null); } } catch (e: any) { setError(e.message || "Unknown error"); setUsername(null); } finally { setLoading(false); } }; if (isAuthenticated) { fetchProfile(); } }, [isAuthenticated]); const foodItems = [ { id: 1, name: "Padthaipro", image: require("@/assets/images/food/padthai.jpg"), color: "#FFCC00", }, { id: 2, name: "Jjajangmyeon", image: require("@/assets/images/food/jjajangmyeon.jpg"), color: "#FFA500", }, { id: 3, name: "Wingztab", image: require("@/assets/images/food/wings.jpg"), color: "#FFCC00", }, { id: 4, name: "Ramen", image: require("@/assets/images/food/ramen.jpg"), color: "#FFA500", }, { id: 5, name: "Tiramisu", image: require("@/assets/images/food/tiramisu.jpg"), color: "#FFCC00", }, { id: 6, name: "Beef wellington", image: require("@/assets/images/food/beef.jpg"), color: "#FFA500", }, { id: 7, name: "Tiramisu", image: require("@/assets/images/food/tiramisu.jpg"), color: "#FFCC00", }, { id: 8, name: "Beef wellington", image: require("@/assets/images/food/beef.jpg"), color: "#FFA500", }, ]; return ( {/* Profile Header */} 👨‍🍳 {loading ? ( ) : error ? ( {error} ) : ( {username ?? "-"} )} Edit {/* Tab Navigation */} {["Repost", "Likes", "Bookmark"].map((tab) => ( setActiveTab(tab)} > {tab} ))} {/* Food Grid */} {foodItems.map((item, index) => ( {item.name} ))} ); }