import { useLocalSearchParams, Stack } from "expo-router"; import { useState, useEffect } from "react"; import {FlatList, ActivityIndicator, Text, SafeAreaView} from "react-native"; import { Box } from "@/components/ui/box"; import { Image } from "@/components/ui/image"; import { VStack } from "@/components/ui/vstack"; import { Heading } from "@/components/ui/heading"; import { getUserById } from "@/api/client"; import { useNoticesStore } from "@/store/noticesStore"; import { NoticeCard } from "@/components/NoticeCard"; export default function UserProfile() { const { userId } = useLocalSearchParams(); const [user, setUser] = useState(null); const [isUserLoading, setIsUserLoading] = useState(true); const { notices } = useNoticesStore(); useEffect(() => { const fetchUser = async () => { setIsUserLoading(true); try { const userData = await getUserById(Number(userId)); setUser(userData); } catch (err) { console.error("Błąd podczas pobierania danych użytkownika:", err); setUser(null); } finally { setIsUserLoading(false); } }; fetchUser(); }, [userId]); if (isUserLoading) { return ; } if (!user) { return Nie znaleziono użytkownika; } const userNotices = notices.filter( (notice) => notice.clientId === Number(userId) ); return ( Zdjęcie profilowe {user.firstName} {user.lastName} {userNotices.length > 0 ? ( } keyExtractor={(item) => item.noticeId.toString()} /> ) : ( Ten użytkownik nie ma żadnych ogłoszeń. )} ); }