-
{formatDateTime(order.createdAt)}
+
+ Recebido em {formatDateTime(order.createdAt) || '---'}
+
{order.name || 'Cliente'}
{order.type}
diff --git a/src/components/Client/MenuView.jsx b/src/components/Client/MenuView.jsx
index 6c00a907..13e06a07 100644
--- a/src/components/Client/MenuView.jsx
+++ b/src/components/Client/MenuView.jsx
@@ -1,5 +1,5 @@
import React, { useMemo, useState } from 'react';
-import { Plus, Minus, Image as ImageIcon, SlidersHorizontal } from 'lucide-react';
+import { Plus, Minus, CupSoda, Beef, Martini, SlidersHorizontal } from 'lucide-react';
import { formatCurrency } from '../../utils/format';
export const MenuView = ({ products, cart, onUpdateCart, onProceed }) => {
@@ -20,17 +20,20 @@ export const MenuView = ({ products, cart, onUpdateCart, onProceed }) => {
const sortedProducts = useMemo(() => {
const espetos = [];
+ const bebidas = [];
const others = [];
products.forEach((item) => {
if (item.category?.toLowerCase().includes('espeto')) {
espetos.push(item);
+ } else if (item.category?.toLowerCase().includes('bebida')) {
+ bebidas.push(item);
} else {
others.push(item);
}
});
- return [...espetos, ...others];
+ return [...espetos, ...bebidas, ...others];
}, [products]);
const filteredProducts = useMemo(() => {
@@ -49,20 +52,50 @@ export const MenuView = ({ products, cart, onUpdateCart, onProceed }) => {
);
}, [selectedCategory, sortedProducts]);
+ const groupedProducts = useMemo(() => {
+ const groups = new Map();
+ filteredProducts.forEach((item) => {
+ const label = item.category
+ ? item.category.charAt(0).toUpperCase() + item.category.slice(1)
+ : 'Outros';
+ if (!groups.has(label)) {
+ groups.set(label, []);
+ }
+ groups.get(label).push(item);
+ });
+ return Array.from(groups.entries());
+ }, [filteredProducts]);
+
+ const groupIcon = (category) => {
+ if (category.toLowerCase().includes('espeto')) return
;
+ if (category.toLowerCase().includes('bebida')) return
;
+ return
;
+ };
+
return (
-
-
-
+
+
+
+
+
Cardápio
+
Escolha seus favoritos
+
+
+
+ Filtros
+
+
+
{categories.map((category) => {
const isActive = category === selectedCategory;
return (
-
-
- Filtros
-
-
- {filteredProducts.map((item) => (
-
-
- {item.imageUrl ? (
-

- ) : (
-
-
-
- )}
+
+ {groupedProducts.map(([category, items]) => (
+
+
+
+ {groupIcon(category)}
+
+ {category}
+
+ {items.map((item) => (
+
+
+
+
{item.name}
+ {item.category && (
+
+ {item.category}
+
+ )}
+
+
{item.desc || 'Feito na brasa na hora para você.'}
+
-
-
-
-
{item.name}
- {item.category && (
-
- {item.category}
-
- )}
-
-
{item.desc}
-
-
-
{formatCurrency(item.price)}
-
- {cart[item.id] ? (
-
-
-
{cart[item.id].qty}
-
+
+
{formatCurrency(item.price)}
+ {cart[item.id] ? (
+
+
+
{cart[item.id].qty}
+
+
+ ) : (
+
+ )}
- ) : (
-
- )}
-
+
+ ))}
-
+
))}
{Object.keys(cart).length > 0 && (
-
+