[PK-46] FE-6 Objednávka: /objednavka/[id], pay-by-square QR + status badge #12
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "feature/PK-46-order-detail"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
What
Server route
/objednavka/[id]— potvrdzovacia stránka objednávky s pay-by-square QR kódom.Fetchuje paralelne
GET /api/orders/<id>(BE-5) +GET /api/orders/<id>/payment-qr(BE-6), forwarduje cookies a?token=<HMAC>z query stringu (guest flow z FE-5 redirectu).AC pokrytie
/objednavka/[id](slovenský naming, zhodný s redirectom z FE-5)cookies+?token,no-storenot-found.tsx("Objednávku sme nenašli, skús odkaz z mailu / pokladne"), neprezrádza existenciu<img src={qr_data_url}>280×280 + IBAN/suma/VS/správaMASOX OBJ <order_id>/príjemcaPaymentNotConfiguredCard(kontakt +421 903 400 326, žiadny placeholder QR/IBAN)OrderSummarykomponent vfe/src/components/order/(reuse CheckoutSummary patternu): položky, subtotal, vat_breakdown, shipping, total, adresa, email, notepending/pending_payment→ bordová „Čaká na platbu",paid→ zelená „Zaplatené",shipped→ modrá „Odoslané",cancelled→ sivá „Zrušené". (BE-5 vraciapendingperprisma/schema.prisma:185— držím sa BE truth, pre istotu pokrývam ajpending_payment.)pendingwindow.print());@media printvglobals.cssskryje site header/footer +.no-print/ucet/objednavkypre prihláseného (token absent),prefetch=false(FE-7 to napojí)top-20); jednostĺpcový layout keď QR sekcia chýba (paid/shipped/cancelled, alebo QR unavailable)Tech
fe/src/lib/api.ts: pridané typyOrderDetail,OrderItem,OrderShippingAddress,PaymentQr,PaymentQrResult+ fetcherygetOrderDetail(id, token)/getPaymentQr(id, token).qr_data_urlpoužité priamo v<img>(data URL, žiadnynext/image).Files
fe/src/app/objednavka/[id]/page.tsx— server componentfe/src/app/objednavka/[id]/not-found.tsxfe/src/components/order/OrderSummary.tsxfe/src/components/order/OrderStatusBadge.tsxfe/src/components/order/PaymentQrCard.tsx(+PaymentNotConfiguredCard)fe/src/components/order/PrintButton.tsx(client)fe/src/lib/api.ts— typy + fetcheryfe/src/app/globals.css—@media printpravidláTest
tsc --noEmit✓ čisténext lint✓ čisténext build✓ úspešný (routeƒ /objednavka/[id]registered, 745 B page bundle)Mimo skope (per zadanie)
/ucet/objednavky(FE-7) — link existuje ako dead link,prefetch=falseIssue: PK-46
Depends on: BE-5 (merged), BE-6 (otvorený PR #2 — be-dev to merguje)
- Server route /objednavka/[id] s parallel fetch order detail + payment QR (forward cookies + ?token= pre guest flow, no-store) - Komponent OrderSummary (položky, subtotal, vat_breakdown, doprava, spolu, doručovacia adresa, email, poznámka) - OrderStatusBadge: pending → bordová, paid → zelená, shipped → modrá, cancelled → sivá (fallback pre neznámy status) - PaymentQrCard: <img src={qr_data_url}> 280×280, IBAN/suma/VS/správa/príjemca - PaymentNotConfiguredCard pre 503 (kontakt +421 903 400 326) - 404 z order detail → not-found.tsx (neprezrádza existenciu) - 404 z payment-qr → ignoruj, render len order summary - "Čo ďalej" sekcia len pre pending status - "Vytlačiť" client komponent (window.print()) + @media print CSS skryje site header/footer/nav/button - "Moje objednávky" link pre prihláseného (token absent), prefetch=false - Sticky QR panel na lg+, jednostĺpcový layout keď QR sekcia chýba Co-authored-by: multica-agent <github@multica.ai>0cb7c7a7dfto0688895efb