"use client"; import React, { useEffect, useState } from 'react'; import { X, Folder, LayoutGrid } from 'lucide-react'; import { motion, AnimatePresence } from 'framer-motion'; import Link from 'next/link'; import { catalogService, CategoryResponse } from '@/services/api/catalogService'; interface MobileDrawerProps { isOpen: boolean; onClose: () => void; } export const MobileDrawer: React.FC = ({ isOpen, onClose }) => { const [categories, setCategories] = useState([]); useEffect(() => { if (isOpen) { catalogService.getCategories().then((res) => { if (Array.isArray(res)) setCategories(res); }); } }, [isOpen]); React.useEffect(() => { if (!isOpen) return; const handleKeyDown = (e: KeyboardEvent) => { if (e.key === 'Escape') onClose(); }; document.addEventListener('keydown', handleKeyDown); return () => document.removeEventListener('keydown', handleKeyDown); }, [isOpen, onClose]); const links = [ { name: 'Home', href: '/' }, { name: 'Shop', href: '/shop' }, { name: 'Services', href: '/service' }, { name: 'Top Deals', href: '/shop' }, ]; return ( {isOpen && ( <> {/* Backdrop */} {/* Drawer Panel */}
{/* Header */}
iFixKart
{/* Navigation Links */}

Navigation

    {links.map((link) => (
  • {link.name}
  • ))}
{/* Categories */} {categories.length > 0 && (

Categories

    {categories.map((cat) => (
  • {cat.name}
  • ))}
)}
{/* Footer */}
© {new Date().getFullYear()} iFixKart. All Rights Reserved.
)}
); };