'use client'; import { useState, useCallback, ReactNode } from 'react'; import RecipesSidebar, { type FilterState } from './RecipesSidebar'; interface RecipeLayoutProps { children: ReactNode; categories: string[]; tags: string[]; onFilterChange?: (filters: FilterState) => void; showFilters?: boolean; } export default function RecipeLayout({ children, categories, tags, onFilterChange, showFilters = true }: RecipeLayoutProps) { const [sidebarOpen, setSidebarOpen] = useState(false); const handleFilterChange = useCallback((filters: FilterState) => { if (onFilterChange) { onFilterChange(filters); } }, [onFilterChange]); return (
{/* Mobile Overlay */} {sidebarOpen && (
setSidebarOpen(false)} aria-hidden="true" /> )} {/* Mobile menu button - only visible on mobile */}
{/* Sidebar - Always visible on desktop (lg+), slide-out on mobile */} {/* Main content */}
{children}
); }