import { useState } from 'react'; import { Button } from '@/components/ui/button'; import { Input } from '@/components/ui/input'; import { Label } from '@/components/ui/label'; import { Badge } from '@/components/ui/badge'; import { Card, CardContent } from '@/components/ui/card'; import { QrCode, Plus, Search, Edit, Trash2, Eye } from 'lucide-react'; import { Dialog, DialogContent, DialogHeader, DialogTitle, DialogTrigger } from '@/components/ui/dialog'; import { Select, SelectContent, SelectItem, SelectTrigger, SelectValue } from '@/components/ui/select'; import { toast } from 'sonner'; interface MenuItem { id: string; name: string; description: string; price: number; category: string; image?: string; available: boolean; allergens?: string[]; } const DigitalMenu = () => { const [searchTerm, setSearchTerm] = useState(''); const [selectedCategory, setSelectedCategory] = useState('all'); const [menuItems] = useState([ { id: '1', name: 'Paella Valenciana', description: 'Arroz tradicional con mariscos y pollo', price: 18.50, category: 'Platos Principales', available: true, allergens: ['mariscos', 'gluten'] }, { id: '2', name: 'Gazpacho Andaluz', description: 'Sopa fría de tomate con verduras', price: 6.50, category: 'Entrantes', available: true, allergens: [] }, { id: '3', name: 'Tarta de Santiago', description: 'Tarta de almendra tradicional gallega', price: 5.50, category: 'Postres', available: true, allergens: ['frutos secos', 'huevo'] }, { id: '4', name: 'Pulpo a la Gallega', description: 'Pulpo cocido con pimentón y aceite de oliva', price: 16.00, category: 'Platos Principales', available: false, allergens: ['mariscos'] } ]); const categories = ['all', 'Entrantes', 'Platos Principales', 'Postres', 'Bebidas']; const filteredItems = menuItems.filter(item => { const matchesSearch = item.name.toLowerCase().includes(searchTerm.toLowerCase()) || item.description.toLowerCase().includes(searchTerm.toLowerCase()); const matchesCategory = selectedCategory === 'all' || item.category === selectedCategory; return matchesSearch && matchesCategory; }); const generateQR = (tableNumber: string) => { toast.success(`Código QR generado para mesa ${tableNumber}`); }; return (
{/* QR Generation Section */}
Agregar Item al Menú
{/* Search and Filter */}
setSearchTerm(e.target.value)} className="pl-10" />
{/* Menu Items Grid */}
{filteredItems.map((item) => (

{item.name}

{item.description}

{item.available ? 'Disponible' : 'Agotado'}
{item.allergens && item.allergens.length > 0 && (
{item.allergens.map(allergen => ( {allergen} ))}
)}
€{item.price.toFixed(2)}
))}
{filteredItems.length === 0 && (
No se encontraron platos con los filtros seleccionados
)}
); }; export default DigitalMenu;