diff --git a/apps/frontend/src/features/booking/components/booking-tools-dialog.tsx b/apps/frontend/src/features/booking/components/booking-tools-dialog.tsx index 50b221a..14650c9 100644 --- a/apps/frontend/src/features/booking/components/booking-tools-dialog.tsx +++ b/apps/frontend/src/features/booking/components/booking-tools-dialog.tsx @@ -179,53 +179,55 @@ export function BookingToolsDialog() { -
-
-

Acciones disponibles

-

- Elegí qué hacer según lo que ocurrió con el cliente. -

-
-
- } - title="Completar reserva" - description="El cliente se presentó para usar la cancha." - className="border-emerald-500/40 bg-emerald-500/10 text-lg text-emerald-600 hover:bg-emerald-500/15 hover:text-emerald-800" - onClick={() => { - updateStatus('COMPLETED'); - }} - /> + {booking?.status !== 'COMPLETED' && ( +
+
+

Acciones disponibles

+

+ Elegí qué hacer según lo que ocurrió con el cliente. +

+
+
+ } + title="Completar reserva" + description="El cliente se presentó para usar la cancha." + className="border-emerald-500/40 bg-emerald-500/10 text-lg text-emerald-600 hover:bg-emerald-500/15 hover:text-emerald-800" + onClick={() => { + updateStatus('COMPLETED'); + }} + /> - } - title="Cancelar reserva" - description="El cliente avisó que no va a venir. La cancha vuelve a estar disponible." - className="border-red-500/40 bg-red-500/10 text-lg text-red-600 hover:bg-red-500/15 hover:text-red-800" - onClick={() => { - updateStatus('CANCELLED'); - }} - /> + } + title="Cancelar reserva" + description="El cliente avisó que no va a venir. La cancha vuelve a estar disponible." + className="border-red-500/40 bg-red-500/10 text-lg text-red-600 hover:bg-red-500/15 hover:text-red-800" + onClick={() => { + updateStatus('CANCELLED'); + }} + /> - } - title="Enviar recordatorio" - description="Enviar un mensaje por WhatsApp al cliente." - className="border-sky-500/40 bg-sky-500/10 text-lg text-sky-600 hover:bg-sky-500/15 hover:text-sky-800" - onClick={sendWhatsappReminder} - /> + } + title="Enviar recordatorio" + description="Enviar un mensaje por WhatsApp al cliente." + className="border-sky-500/40 bg-sky-500/10 text-lg text-sky-600 hover:bg-sky-500/15 hover:text-sky-800" + onClick={sendWhatsappReminder} + /> - } - title="Marcar como No Show" - description="El cliente no vino y no canceló." - className="border-amber-500/40 bg-amber-500/10 text-lg text-amber-600 hover:bg-amber-500/15 hover:text-amber-800" - onClick={() => { - updateStatus('NOSHOW'); - }} - /> -
-
+ } + title="Marcar como No Show" + description="El cliente no vino y no canceló." + className="border-amber-500/40 bg-amber-500/10 text-lg text-amber-600 hover:bg-amber-500/15 hover:text-amber-800" + onClick={() => { + updateStatus('NOSHOW'); + }} + /> +
+
+ )} @@ -321,42 +323,44 @@ function MobileBookingToolsSheet({ -
-

Acciones

-
- } - label="Completar" - className="border-primary/45 bg-primary/12 text-primary" - onClick={onComplete} - /> - } - label="Recordar" - className="border-reserved/45 bg-reserved/12 text-reserved" - onClick={onReminder} - /> - } - label="Cancelar" - className="border-destructive/45 bg-destructive/12 text-destructive" - onClick={onCancel} - /> - } - label="No show" - className="border-warning/50 bg-warning/12 text-warning" - onClick={onNoShow} - /> -
- - - - - -
+ {booking?.status !== 'COMPLETED' && ( +
+

Acciones

+
+ } + label="Completar" + className="border-primary/45 bg-primary/12 text-primary" + onClick={onComplete} + /> + } + label="Recordar" + className="border-reserved/45 bg-reserved/12 text-reserved" + onClick={onReminder} + /> + } + label="Cancelar" + className="border-destructive/45 bg-destructive/12 text-destructive" + onClick={onCancel} + /> + } + label="No show" + className="border-warning/50 bg-warning/12 text-warning" + onClick={onNoShow} + /> +
+ + + + + +
+ )} ); }