"use client" import { useState, useEffect } from "react" import Link from "next/link" import { Menu, Heart, Truck, ShoppingCart, User } from "lucide-react" import { Button } from "@/components/ui/button" import { Badge } from "@/components/ui/badge" import { Sheet, SheetContent, SheetHeader, SheetTitle } from "@/components/ui/sheet" import { ScrollArea } from "@/components/ui/scroll-area" import { useCategories, useCart, useFavorites, useOrders } from "@/lib/hooks" interface MobileBottomNavProps { locale?: string isAuthenticated?: boolean translations?: { catalog: string favorites: string orders: string cart: string login: string profile: string } onLoginClick?: () => void } export default function MobileBottomNav({ locale = "ru", isAuthenticated = false, translations, onLoginClick, }: MobileBottomNavProps) { const [isClient, setIsClient] = useState(false) const [isCategoryOpen, setIsCategoryOpen] = useState(false) const { data: categories = [] } = useCategories() const { data: cartData } = useCart() const { data: favoritesData } = useFavorites() const { data: ordersData } = useOrders() const t = translations || { catalog: "Каталог", favorites: "Избранное", orders: "Заказы", cart: "Корзина", login: "Войти", profile: "Профиль", } useEffect(() => { setIsClient(true) }, []) const handleAuthClick = () => { if (isAuthenticated) { window.location.href = `/${locale}/me` } else if (onLoginClick) { onLoginClick() } } if (!isClient) return null return ( <> {/* Mobile Bottom Navigation */}
{/* Catalog Button */} {/* Favorites Button */} {/* Orders Button */} {/* Cart Button */} {/* Profile/Login Button */}
{/* Category Sheet/Drawer */} {t.catalog}
{categories.map((category) => (
setIsCategoryOpen(false)} className="flex items-center gap-3 px-3 py-2 rounded-lg hover:bg-gray-100 transition-colors font-semibold" > {category.icon_class && } {category.name} {/* Subcategories */} {category.children && category.children.length > 0 && (
{category.children.map((child: any) => ( setIsCategoryOpen(false)} className="block px-3 py-2 text-sm text-gray-600 hover:text-primary hover:bg-gray-50 rounded-lg transition-colors" > {child.name} ))}
)}
))}
) }