'use client' import MinusIcon from '@/components/icons/MinusIcon' import PlusIcon from '@/components/icons/PlusIcon' import { ef } from '@/lib/helpers/utfNumbers' import { useCart } from '@/app/[name]/(Dialogs)/cart/hook/useCart' import { motion } from 'framer-motion' import { ArrowLeft, Clock, Cup, Heart, TruckTick } from 'iconsax-react' import Image from 'next/image' import { useParams, useRouter } from 'next/navigation' import React, { useMemo } from 'react' import { useGetFood } from './hooks/useFoodData' import { useGetAbout } from '../about/hooks/useAboutData' type Props = object function FoodPage({ }: Props) { const { id } = useParams(); const router = useRouter(); const { data: food, isLoading } = useGetFood(id as string); const { data: about } = useGetAbout(); const { items, addToCart, removeFromCart } = useCart(); const foodId = food?.data?.id || id as string; const quantity = useMemo(() => { const item = items?.[foodId]; if (item && typeof item === 'object' && 'quantity' in item) { return item.quantity || 0; } return 0; }, [items, foodId]); const handleAddToCart = () => { if (foodId) { addToCart(foodId); } }; const handleRemoveFromCart = () => { if (foodId) { removeFromCart(foodId); } }; if (isLoading) { return (

در حال بارگذاری...

); } if (!food?.data) { return (

غذا یافت نشد

); } const foodData = food.data; const foodName = foodData.title || foodData.name || foodData.foodName || ''; const foodImage = typeof foodData.image === 'string' ? foodData.image : Array.isArray(foodData.images) && foodData.images.length > 0 ? typeof foodData.images[0] === 'string' ? foodData.images[0] : foodData.images[0]?.url : '/assets/images/food-preview-hq.png'; const categoryName = foodData.category?.title; const prepareTime = foodData.prepareTime || 0; const price = foodData.price || 0; const content = Array.isArray(foodData.content) ? foodData.content.join('، ') : foodData.content || foodData.desc || ''; return (
{foodName}
{categoryName || '-'}
{foodName}
زمان پخت و آماده سازی: {prepareTime > 0 ? `${ef(String(prepareTime))} دقیقه` : '-'}
{about?.data?.score?.purchaseScore && about?.data?.score?.purchaseAmount ? ( <>
{ef( Math.round( foodData?.price * (Number(about.data.score.purchaseScore) / Number(about.data.score.purchaseAmount)) ).toLocaleString('en-US') )}
امتیاز برای هر بار خرید ) : ( - )}
{foodData.pickupServe ? 'ارسال با پیک' : '-'}

محتویات:

{content || '-'}

{ef(price.toLocaleString('en-US'))} T {quantity <= 0 ? ( ) : ( <> {quantity} )}
) } export default FoodPage