'use client'; import { useCallback, useMemo, useState } from "react"; import SearchBox from "@/components/input/SearchBox"; import CategoryItemRenderer from "@/components/listview/CategoryItemRenderer"; import HorizontalScrollView from "@/components/listview/HorizontalScrollView"; import Image from "next/image"; import EqualizerIcon from "@/components/icons/EqualizerIcon"; import TextAlignIcon from "@/components/icons/TextAlignIcon"; import VerticalScrollView from "@/components/listview/VerticalScrollView"; import MenuItemRenderer from "@/components/listview/MenuItemRenderer"; import React from "react"; import MenuItem from "@/components/listview/MenuItem"; import Button from "@/components/button/PrimaryButton"; import AnimatedBottomSheet from "@/components/bottomsheet/AnimatedBottomSheet"; import MultiOption from "@/components/combobox/MultiOption"; import { DropdownOption } from "@/components/combobox/Combobox"; import { Switch } from "@/components/ui/switch"; import { LucideMedal, Medal, MedalIcon, StarHalf, StarIcon, Stars, TicketPercentIcon } from "lucide-react"; import TicketDiscountIcon from "@/components/icons/TickerDiscountIcon"; const categories = new Array(13).fill({ title: "خوراک", icon: "" }); const foods = [ { id: 1, category: 0, price: "69.000", name: "کباب چوبی ژیوان )سیخ چوبی(", contains: "فیله گوساله / سس سفید / قارچ و سیب زمینی/ پنیر پارمزان" }, { id: 2, category: 1, price: "49.000", name: "برگر گوشت گوساله", contains: "گوشت گوساله / پنیر چدار / کاهو / گوجه" }, { id: 3, category: 2, price: "29.000", name: "ساندویچ مرغ", contains: "مرغ / کاهو / گوجه / سس مایونز" }, { id: 4, category: 0, price: "89.000", name: "کباب ماهی", contains: "ماهی / سس لیمو / قارچ و سیب زمینی" }, { id: 5, category: 1, price: "39.000", name: "سالاد فصل", contains: "کاهو / گوجه / خیار / پنیر فتا" }, { id: 6, category: 3, price: "59.000", name: "پاستا گوشت", contains: "گوشت گوساله / پاستا / سس گوجه" }, { id: 7, category: 2, price: "49.000", name: "ساندویچ تن ماهی", contains: "تن ماهی / کاهو / گوجه / سس مایونز" }, { id: 8, category: 0, price: "79.000", name: "کباب گوشت گوسفندی", contains: "گوشت گوسفندی / سس سفید / قارچ و سیب زمینی" }, { id: 9, category: 1, price: "29.000", name: "برگر مرغ", contains: "مرغ / پنیر چدار / کاهو / گوجه" }, { id: 10, category: 3, price: "69.000", name: "سالاد میگو", contains: "میگو / کاهو / گوجه / خیار" }, { id: 11, category: 2, price: "39.000", name: "ساندویچ شاورما", contains: "مرغ / کاهو / گوجه / سس تارتار" }, { id: 12, category: 0, price: "99.000", name: "کباب گوشت بوقلمون", contains: "گوشت بوقلمون / سس سفید / قارچ و سیب زمینی" }, { id: 13, category: 1, price: "59.000", name: "برگر ماهی", contains: "ماهی / پنیر چدار / کاهو / گوجه" }, { id: 14, category: 3, price: "49.000", name: "سالاد مرغ", contains: "مرغ / کاهو / گوجه / خیار" } ]; const sortings = [ 'محبوب ترین', 'بالاترین امتیاز', 'جدید ترین', 'ارزان ترین', 'گران ترین', ] const contents: Array = [ { id: '0', title: 'گیاهی' }, { id: '1', title: 'حیوانی' } ] const shippings: Array = [ { id: '0', title: 'ارسال با پیک', label: '' }, ] const MenuIndex = () => { const [search, setSearch] = useState(""); const [selectedCategory, setSelectedCategory] = useState(0); const [filterModal, setFilterModal] = useState(false); const [sortingModal, setSortingModal] = useState(false); const [, setSorting] = useState(0); const [selectedContentId, setSelectedContentId] = useState('0'); const [selectedShippingId, setSelectedShippingId] = useState('0'); const updateSearch = useCallback((e: React.ChangeEvent) => { setSearch(e.target.value); }, []); const updateCategory = useCallback((id: number) => { setSelectedCategory(id); }, []); const toggleFilterModal = useCallback(() => { setFilterModal((state) => !state); }, []); const toggleSortingModal = useCallback(() => { setSortingModal((state) => !state); }, []); const changeSorting = (index: number) => { setSorting(() => index); } const changeSelectedContent = (e: React.MouseEvent, index: number) => { setSelectedContentId(() => contents[index]?.id || contents[0].id); } const changeSelectedShipping = (e: React.MouseEvent, index: number) => { setSelectedShippingId(() => contents[index]?.id || contents[0].id); } const filteredReceiptItems = useMemo(() => { const lowerSearch = search.toLowerCase(); return foods.filter( (item) => item.category === selectedCategory && item.name.toLowerCase().includes(lowerSearch) ); }, [selectedCategory, search]); return (
{categories.map((item, index) => ( updateCategory(index)} > category image {item.title} ))}
{categories[selectedCategory]?.title}
{filteredReceiptItems.map((food) => ( ))}
دارای امتیاز پس از خرید
دارای کد تخفیف

{sortings.map((v, i) => { return (
changeSorting(i)} className="text-sm2 font-medium cursor-pointer"> {v}
{i < sortings.length - 1 &&
}
) })}
); }; export default MenuIndex;