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 (
{user.firstName} {user.lastName}
{userNotices.length > 0 ? (
}
keyExtractor={(item) => item.noticeId.toString()}
/>
) : (
Ten użytkownik nie ma żadnych ogłoszeń.
)}
);
}