'use client'; import Link from 'next/link'; import { Heart, ShoppingBag } from 'lucide-react'; import { useWishlist } from '@/presentation/providers/wishlist-provider'; import { useCart } from '@/presentation/providers/cart-provider'; import { useLanguage } from '@/presentation/providers/language-provider'; import { getTranslation } from '@/presentation/i18n/translations'; import { getMenuPosterSrc, applyNextImageFallback, getMenuPosterCandidates } from '@/lib/assets'; import { useMenu } from '@/presentation/providers/menu-provider'; import { getMenuItemName } from '@/application/i18n/menu-localization'; import { buildCartLineFromMenuItem } from '@/application/cart/cart-line-builder'; export default function WishlistDrawer() { const { items, isOpen, closeWishlist, removeFromWishlist, clearWishlist, } = useWishlist(); const { addToCart } = useCart(); const { getItemById } = useMenu(); const { language, isRtl } = useLanguage(); const t = getTranslation(language); if (!isOpen) return null; const handleAddToCart = (item: (typeof items)[number]) => { const menuItem = getItemById(item.id); addToCart(menuItem ? buildCartLineFromMenuItem(menuItem) : { id: item.id, name: item.name, price: item.price, image: item.image, pricingMode: 'standard', }); }; return ( <>

{t.wishlistDrawer.title}

{items.length > 0 && ( {items.length} {items.length === 1 ? t.wishlistDrawer.item : t.wishlistDrawer.items} )}
{items.length > 0 && ( )}
{items.length === 0 ? (

{t.wishlistDrawer.empty}

{t.wishlistDrawer.browseMenu}
) : (
{items.map((item) => { const menuItem = getItemById(item.id); const displayName = getMenuItemName(language, { id: item.id, name: menuItem?.name ?? item.name, }); return (
{displayName} { applyNextImageFallback( e.target as HTMLImageElement, getMenuPosterCandidates(item), (e.target as HTMLImageElement).src ); }} />

{displayName}

{(() => { const menuItem = getItemById(item.id); if (menuItem?.pricing === 'weight') { return ( <> {menuItem.pricePerHalfKg} kr / ½ kg {menuItem.pricePerKg} {t.menu.perKg} ); } return {item.price} kr; })()}
); })}
)}
{items.length > 0 && (

{t.wishlistDrawer.hint}

{t.wishlistDrawer.continueBrowsing}
)}
); }