import React, { useState, useEffect } from 'react';
import { useNavigate } from 'react-router-dom';
import { db } from '../firebase/config';
import { ref, onValue } from 'firebase/database';
import { Utensils, Star, Clock, MapPin, ChefHat, Instagram, Facebook, ArrowRight } from 'lucide-react';
export default function CustomerMenu() {
const [menuItems, setMenuItems] = useState([]);
const [categories, setCategories] = useState([]);
const [activeCategory, setActiveCategory] = useState('Todos');
const [menuTheme, setMenuTheme] = useState('dark'); // 'dark' or 'light'
const navigate = useNavigate();
useEffect(() => {
// Escuchar el menú
const menuRef = ref(db, 'menu');
onValue(menuRef, (snapshot) => {
const data = snapshot.val();
if (data) {
const list = Object.keys(data).map(id => ({ id, ...data[id] })).filter(item => item.active !== false);
setMenuItems(list);
const cats = [...new Set(list.map(item => item.category))];
setCategories(['Todos', ...cats]);
}
});
// Escuchar el tema configurado por el admin
const themeRef = ref(db, 'config/menuTheme');
onValue(themeRef, (snapshot) => {
if (snapshot.exists()) {
setMenuTheme(snapshot.val());
}
});
}, []);
const filteredItems = activeCategory === 'Todos'
? menuItems
: menuItems.filter(item => item.category === activeCategory);
const isDark = menuTheme === 'dark';
const themeColors = {
bg: isDark ? '#0a0a0a' : '#ffffff',
text: isDark ? '#ffffff' : '#1a1a1a',
muted: isDark ? 'rgba(255,255,255,0.6)' : 'rgba(0,0,0,0.6)',
card: isDark ? 'rgba(255,255,255,0.03)' : 'rgba(0,0,0,0.02)',
border: isDark ? 'rgba(255,255,255,0.08)' : 'rgba(0,0,0,0.08)',
accent: '#FF6B6B'
};
return (
{/* Hero Section */}
Gourmet Experience
Descubre una fusión de sabores únicos, preparados con pasión y los ingredientes más frescos.
{/* Badges */}
{[
{ icon:
, text: "4.9 Estrellas" },
{ icon:
, text: "30-45 min" },
{ icon:
, text: "Centro Histórico" }
].map((badge, i) => (
{badge.icon}
{badge.text}
))}
{/* Menu Section */}
{/* Category Tabs */}
{categories.map(cat => (
))}
{/* Menu Grid */}
{filteredItems.map(item => (
e.currentTarget.style.transform = 'translateY(-10px)'} onMouseLeave={e => e.currentTarget.style.transform = 'translateY(0)'}>
{/* Dish Image */}
${item.price}
{/* Dish Details */}
{item.category}
{item.name}
Preparado con ingredientes frescos de la estación y el toque secreto de nuestro chef.
Especialidad
20 min
))}
{/* Footer */}
{/* Admin Quick Back (Floating) */}
);
}