feat(F-189): completed feature

This commit is contained in:
chattie
2026-08-22 23:01:59 +02:00
parent 0e3c488c85
commit 6b93e91ef4
24 changed files with 1535 additions and 63 deletions

View File

@@ -5,6 +5,7 @@ import DiscountPanel from '@/components/DiscountPanel';
import FreeItemModal from '@/components/FreeItemModal';
import PaymentModal from '@/components/PaymentModal';
import ReceiptModal from '@/components/ReceiptModal';
import ReturnModal from '@/components/ReturnModal';
import { posApi } from '@/lib/api-client';
import { generateIdempotencyKey } from '@/lib/idempotency';
import { formatPrice } from '@/lib/money';
@@ -112,6 +113,9 @@ export default function RegisterPage() {
const [loadingPending, setLoadingPending] = useState(false);
const [restPaymentFor, setRestPaymentFor] = useState<PosPendingSale | null>(null);
const [processingRest, setProcessingRest] = useState(false);
const [returnOrder, setReturnOrder] = useState<{ orderId: string; receipt: PosReceipt } | null>(
null,
);
const loadConfig = useCallback(async () => {
setConfigError('');
@@ -1163,6 +1167,26 @@ export default function RegisterPage() {
receipt={receipt}
initialEmail={customer?.email ?? receipt.customerEmail ?? ''}
onDelivered={resetCashier}
onReturn={
config?.session && config?.terminal
? (orderId, latest) => {
setReturnOrder({ orderId, receipt: latest });
}
: undefined
}
/>
)}
{returnOrder && config?.session && config?.terminal && (
<ReturnModal
receipt={returnOrder.receipt}
orderId={returnOrder.orderId}
cashSessionId={config.session.id}
terminalId={config.terminal.id}
onClose={() => setReturnOrder(null)}
onReturned={(latest) => {
setReturnOrder(null);
setReceipt(latest);
}}
/>
)}
</div>