diff --git a/src/app/[name]/(Main)/page.tsx b/src/app/[name]/(Main)/page.tsx index b5c353d..06c02cf 100644 --- a/src/app/[name]/(Main)/page.tsx +++ b/src/app/[name]/(Main)/page.tsx @@ -2,9 +2,11 @@ import { useCallback, useEffect, useMemo, useRef, useState } from "react"; import SearchBox from "@/components/input/SearchBox"; import TextAlignIcon from "@/components/icons/TextAlignIcon"; +import ListIcon from "@/components/icons/ListIcon"; +import GridIcon from "@/components/icons/GridIcon"; import VerticalScrollView from "@/components/listview/VerticalScrollView"; import MenuItemRenderer from "@/components/listview/MenuItemRenderer"; -import MenuItem from "@/components/listview/MenuItem"; +import MenuItem, { type MenuItemViewMode } from "@/components/listview/MenuItem"; import { useQueryState } from "next-usequerystate"; import clsx from "clsx"; import { motion } from "framer-motion"; @@ -15,6 +17,7 @@ import MenuFilterDrawer from "@/app/[name]/(Main)/components/MenuFilterDrawer"; import MenuSkeleton from "@/app/[name]/(Main)/components/MenuSkeleton"; import { useGetCategories, useGetProducts } from "./hooks/useMenuData"; import type { Product, Category } from "./types/Types"; +import { RowHorizontal, RowVertical } from "iconsax-react"; const sortings = ["PopularityDescending", "RateDescending", "PriceAscending", "PriceDescending"] as const; @@ -36,6 +39,17 @@ const MenuIndex = () => { const wrapperRef: React.RefObject = useRef(null); const [smallCategoriesVisible, setSmallCategoriesVisibility] = useState(false); const [isInitialMount, setIsInitialMount] = useState(true); + const [viewMode, setViewMode] = useState("list"); + + useEffect(() => { + const stored = localStorage.getItem("menuViewMode"); + if (stored === "grid" || stored === "list") setViewMode(stored); + }, []); + + const setViewModeAndPersist = useCallback((mode: MenuItemViewMode) => { + setViewMode(mode); + if (typeof window !== "undefined") localStorage.setItem("menuViewMode", mode); + }, []); useEffect(() => { if (isInitialMount) { @@ -160,6 +174,32 @@ const MenuIndex = () => { {selectedCategory === '0' ? '' : categories.find(c => c.id === selectedCategory)?.title || ''}
+
+ + +