"use client"; import { useFavorites } from "@/lib/hooks"; import { Skeleton } from "@/components/ui/skeleton"; import { useTranslations } from "next-intl"; import ProductCard from "@/features/home/components/ProductCard"; import type { Favorite } from "@/lib/types/api"; import EmptyFavorites from "@/features/favorites/components/EmptyFavorites"; import ErrorPage from "@/components/ErrorPage"; import Placeholder from "@/public/logo.webp"; export default function FavoritesPage() { const t = useTranslations(); const { data: favorites, isLoading, isError } = useFavorites(); if (isLoading) { return (

{t("favorite_products")}

{Array.from({ length: 10 }).map((_, i) => (
))}
); } if (isError) { return ; } if (!favorites || favorites.length === 0) { return ; } return (

{t("favorite_products")}

{favorites.map((favorite: Favorite) => { const product = favorite.product; const allImages = product.media ?.map( (media) => media.images_800x800 || media.images_720x720 || media.images_400x400 || media.thumbnail ) .filter(Boolean) || [Placeholder]; const formattedPrice = product.price_amount ? `${parseFloat(product.price_amount).toFixed(2)} TMT` : "Price not available"; return ( ); })}
); }