+ {(() => { + const hour = new Date().getHours(); + if (hour < 12) return 'Bom dia'; + if (hour < 18) return 'Boa tarde'; + return 'Boa noite'; + })()}, {user?.name} +
+Faturamento
-{currency(totalRevenue)}
+Total de reservas
+{allShopAppointments.length}
+Reservas da plataforma: {allShopAppointments.length}
Pendentes
-{pendingAppts}
+Reservas online
+{allShopAppointments.length}
+Marcações feitas pela plataforma
Confirmados
-{confirmedAppts}
-Stock baixo
-0 ? 'text-amber-700' : 'text-slate-900'}`}>{lowStock.length}
+Novos clientes
++ {new Set(allShopAppointments.map(a => a.customerId)).size} +
+Clientes únicos
Verá aqui as reservas de hoje assim que chegarem
+Sem reservas hoje
+Sem vendas no período
- )} + ); + } + + return ( +{customer?.name || 'Cliente'}
+{timeStr} · {svc?.name || 'Serviço'}
+Sem vendas no período
- )} + {/* Atalhos */} +Sem agendamentos futuros
+ ); + } + + return ( +{customer?.name || 'Cliente'}
+{timeStr}
+{svc?.name || 'Serviço'}
+Total de marcações
{totalBookingsToday}
++ Comparado com {totalBookingsToday} no mesmo dia da semana passada +
Novos clientes
{newClientsToday}
++ Comparado com {newClientsToday} no mesmo dia da semana passada +
Marcações online
{onlineBookingsToday}
++ Comparado com {onlineBookingsToday} no mesmo dia da semana passada +
Ocupação
{occupancyRate}%
++ Comparado com {occupancyRate}% no mesmo dia da semana passada +
Sem reservas
Ambas as suas reservas online e manuais aparecerão aqui diff --git a/web/src/pages/Landing.tsx b/web/src/pages/Landing.tsx index 70eb943..874478a 100644 --- a/web/src/pages/Landing.tsx +++ b/web/src/pages/Landing.tsx @@ -90,25 +90,25 @@ export default function Landing() {
{feature.desc}
-{feature.desc}
+