import {Box} from "@/components/ui/box";
import {Card} from "@/components/ui/card";
import {Heading} from "@/components/ui/heading";
import {Image} from "@/components/ui/image";
import {Text} from "@/components/ui/text";
import {VStack} from "@/components/ui/vstack";
import {Link} from "expo-router";
import {Pressable, ActivityIndicator} from "react-native";
import {useWishlist} from "@/store/wishlistStore";
import {Ionicons} from "@expo/vector-icons";
import {useEffect, useState} from "react";
import {getImageByNoticeId} from "@/api/notices";
export function NoticeCard({notice}) {
const addNoticeToWishlist = useWishlist((state) => state.addNoticeToWishlist);
const removeNoticeFromWishlist = useWishlist(
(state) => state.removeNoticeFromWishlist
);
const isInWishlist = useWishlist((state) =>
state.wishlistNotices.some((item) => item.noticeId === notice.noticeId)
);
const [image, setImage] = useState(null);
const [isLoading, setIsLoading] = useState(true);
useEffect(() => {
const fetchImage = async () => {
setIsLoading(true);
try {
let imageUrl = await getImageByNoticeId(notice.noticeId);
setImage(imageUrl);
} catch (error) {
console.error("Błąd podczas pobierania obrazu:", error);
} finally {
setIsLoading(false);
}
};
fetchImage();
}, [notice.noticeId]);
return (
{isLoading ? (
) : (
)}
{notice.title}
{notice.price}zł
{
if (isInWishlist) {
removeNoticeFromWishlist(notice.noticeId); // Usuń z ulubionych
} else {
addNoticeToWishlist(notice); // Dodaj do ulubionych
}
}}
>
);
}