From e17a8d4de7141246969f04ae9865edc691252c5d Mon Sep 17 00:00:00 2001 From: Deploy Date: Wed, 26 Aug 2026 22:20:12 +0200 Subject: [PATCH] fix(pos-selfpay): payment methods shown as modal in selfpay mode only --- project/apps/pos/src/app/(terminal)/page.tsx | 96 +++++++++++++++----- 1 file changed, 72 insertions(+), 24 deletions(-) diff --git a/project/apps/pos/src/app/(terminal)/page.tsx b/project/apps/pos/src/app/(terminal)/page.tsx index a9fab9e..b5bafb6 100644 --- a/project/apps/pos/src/app/(terminal)/page.tsx +++ b/project/apps/pos/src/app/(terminal)/page.tsx @@ -144,6 +144,7 @@ export default function RegisterPage() { const [showSelfpayEmail, setShowSelfpayEmail] = useState(false); const [selfpayEmail, setSelfpayEmail] = useState(''); const [selfpayPaymentReady, setSelfpayPaymentReady] = useState(false); + const [showSelfpayPaymentMethods, setShowSelfpayPaymentMethods] = useState(false); let toastTimer: ReturnType | undefined; const showAddedToast = (name: string) => { clearTimeout(toastTimer); @@ -1657,34 +1658,32 @@ export default function RegisterPage() { {error}

)} - {/* POS-SELFPAY-FLOW: in selfpay mode, hide payment methods until email is captured */} - {(!isSelfpayMode || selfpayPaymentReady) && ( - <> -
- {config.paymentMethods.map((method) => ( - - ))} -
- {/* POS-SELFPAY-FLOW: confirm button after payment added in selfpay */} - {isSelfpayMode && selfpayPaymentReady && !paymentMethod && ( + {/* POS-SELFPAY-FLOW: in cashier mode show inline payment methods; in selfpay show modal */} + {!isSelfpayMode && ( +
+ {config.paymentMethods.map((method) => ( - )} - + ))} +
+ )} + {/* POS-SELFPAY-FLOW: confirm button after payment added in selfpay */} + {isSelfpayMode && selfpayPaymentReady && !paymentMethod && !showSelfpayPaymentMethods && ( + )}
{!isSelfpayMode && ( @@ -1782,6 +1781,7 @@ export default function RegisterPage() { e.preventDefault(); setShowSelfpayEmail(false); setSelfpayPaymentReady(true); + setShowSelfpayPaymentMethods(true); }} className="space-y-4" > @@ -1810,6 +1810,7 @@ export default function RegisterPage() { setSelfpayEmail(''); setShowSelfpayEmail(false); setSelfpayPaymentReady(true); + setShowSelfpayPaymentMethods(true); }} className="w-full rounded-xl border border-gray-300 py-2 text-sm font-medium text-gray-500" > @@ -1820,6 +1821,53 @@ export default function RegisterPage() {
)} + {/* POS-SELFPAY-FLOW: payment methods modal in selfpay mode */} + {showSelfpayPaymentMethods && isSelfpayMode && ( +
+
+
+
+

+ Total {formatPrice(totals.total)} +

+

+ ¿Cómo quieres pagar? +

+
+ +
+
+ {config.paymentMethods.map((method) => ( + + ))} +
+
+
+ )} + {paymentMethod && (