diff --git a/web/src/pages/Booking.tsx b/web/src/pages/Booking.tsx index 793e718..76c5e42 100644 --- a/web/src/pages/Booking.tsx +++ b/web/src/pages/Booking.tsx @@ -29,10 +29,8 @@ export default function Booking() { const [date, setDate] = useState(''); const [slot, setSlot] = useState(''); - if (!shop) return
Barbearia não encontrada
; - - const selectedService = shop.services.find((s) => s.id === serviceId); - const selectedBarber = shop.barbers.find((b) => b.id === barberId); + const selectedService = shop?.services.find((s) => s.id === serviceId); + const selectedBarber = shop?.barbers.find((b) => b.id === barberId); /** * Função para gerar horários padrão se não houver horários específicos predefinidos @@ -80,6 +78,8 @@ export default function Booking() { return slots.filter((slot) => !bookedSlots.includes(slot)); }, [selectedBarber, date, barberId, appointments]); + if (!shop) return
Barbearia não encontrada
; + const canSubmit = serviceId && barberId && date && slot; /** @@ -124,8 +124,8 @@ export default function Booking() {
{step.completed ? : } @@ -154,8 +154,8 @@ export default function Booking() { key={s.id} onClick={() => setService(s.id)} className={`p-4 rounded-xl border-2 text-left transition-all ${serviceId === s.id - ? 'border-amber-500 bg-gradient-to-br from-amber-50 to-amber-100/50 shadow-md scale-[1.02]' - : 'border-slate-200 hover:border-amber-300 hover:bg-amber-50/50' + ? 'border-amber-500 bg-gradient-to-br from-amber-50 to-amber-100/50 shadow-md scale-[1.02]' + : 'border-slate-200 hover:border-amber-300 hover:bg-amber-50/50' }`} >
@@ -180,8 +180,8 @@ export default function Booking() { key={b.id} onClick={() => setBarber(b.id)} className={`px-4 py-2.5 rounded-full border-2 text-sm font-medium transition-all ${barberId === b.id - ? 'border-amber-500 bg-gradient-to-r from-amber-500 to-amber-600 text-white shadow-md' - : 'border-slate-200 text-slate-700 hover:border-amber-300 hover:bg-amber-50' + ? 'border-amber-500 bg-gradient-to-r from-amber-500 to-amber-600 text-white shadow-md' + : 'border-slate-200 text-slate-700 hover:border-amber-300 hover:bg-amber-50' }`} > {b.name} @@ -221,8 +221,8 @@ export default function Booking() { key={h} onClick={() => setSlot(h)} className={`px-4 py-2 rounded-lg border-2 text-sm font-medium transition-all ${slot === h - ? 'border-amber-500 bg-gradient-to-r from-amber-500 to-amber-600 text-white shadow-md' - : 'border-slate-200 text-slate-700 hover:border-amber-300 hover:bg-amber-50' + ? 'border-amber-500 bg-gradient-to-r from-amber-500 to-amber-600 text-white shadow-md' + : 'border-slate-200 text-slate-700 hover:border-amber-300 hover:bg-amber-50' }`} > {h}