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 && (