fix(POS-FIX-9): botones dialogo merge habilitados — recoveringSaleId no se setea al abrir dialogo

This commit is contained in:
chattie
2026-08-24 07:55:23 +02:00
parent 75d0d5b6a7
commit 08bae243a4
3 changed files with 28 additions and 9 deletions

View File

@@ -566,8 +566,9 @@ export default function RegisterPage() {
const recoverSale = async (sale: PosPendingSale) => {
// POS-FIX-9: if cart has items, show merge dialog instead of auto-merge
if (cart.length > 0) {
setRecoveringSaleId(sale.id);
// Don't set recoveringSaleId here — buttons in the dialog would be disabled
setMergePendingSale(sale);
setError('');
return;
}
await doRecoverSale(sale);
@@ -1532,7 +1533,10 @@ export default function RegisterPage() {
<div className="flex flex-col gap-2">
<button
type="button"
onClick={() => void parkAndRecover()}
onClick={() => {
setError('');
void parkAndRecover().catch((err) => setError(err instanceof Error ? err.message : String(err)));
}}
disabled={recoveringSaleId !== null}
className="flex-1 rounded-xl border border-amber-300 bg-amber-50 px-4 py-2.5 text-sm font-bold text-amber-700 hover:bg-amber-100 disabled:opacity-50"
>
@@ -1540,7 +1544,10 @@ export default function RegisterPage() {
</button>
<button
type="button"
onClick={() => void mergeRecoveredItems()}
onClick={() => {
setError('');
void mergeRecoveredItems().catch((err) => setError(err instanceof Error ? err.message : String(err)));
}}
disabled={recoveringSaleId !== null}
className="flex-1 rounded-xl border border-green-300 bg-green-50 px-4 py-2.5 text-sm font-bold text-green-700 hover:bg-green-100 disabled:opacity-50"
>
@@ -1550,7 +1557,6 @@ export default function RegisterPage() {
type="button"
onClick={() => {
setMergePendingSale(null);
setRecoveringSaleId(null);
}}
className="flex-1 rounded-xl border border-gray-300 px-4 py-2 text-sm font-medium text-gray-700 hover:bg-gray-50"
>