Repository navigation
fix(frontend): render readable customer display rows and TV page rotation - #1164
Conversation
|
Important Review skippedAuto reviews are disabled on this repository. Please check the settings in the CodeRabbit UI or the ⚙️ Run configuration
You can disable this status message by setting the Use the checkbox below for a quick retry:
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
|
@greptile review |
[Medium impact] Customer display page adds pagination and connection-loss handling. Fix page changes during resize before merging; the pairing-test gap is non-blocking. Findings
|
4a71f00 to
eec8c26
Compare
|
@greptile review |
…ority split and page rotation"}
…ayout integrity spec
4f048f3 to
8d327a0
Compare
Intent
Implement approved issue #1148 customer-display readable rows and TV paging for unattended screens. Show the complete current receipt identifier from bill.number with order.number fallback, safely wrap long identifiers, and use readable full-width Preparing/Ready rows with no horizontal overflow at 720p, 1080p and 4K. Measure each column’s actual usable height, wrapped row heights and computed gap for legible multipage layouts. Rotate only columns with multiple pages every 10 seconds, preserve the current page until its interval expires, prioritize newly ready orders next, and interleave older eligible orders to prevent starvation. Remove ineligible orders promptly; preserve the existing latest-100 feed limit and do not expand backend queue pagination (#1159). Keep the scoped pairing-token/API-auth contract, fragment flow, private data boundary, signed-in preview scope, hidden-tab pause/resume and cleanup. Keep last-known rows on network failures with a stale indication, recover after bounded stalled requests, immediately clear revoked 401 pairings, and prevent stale async session/config results from restoring invalid state. Do not add audio, animation, settings, dependencies, auth/API changes, or unrelated refactors. Preserve existing scroll test IDs and cover paging, identifier wrapping, viewport bounds, new-ready priority/fairness, removals, hidden pause, slow/stalled paired and signed-in recovery, revocation, loading/empty/error states, and mobile flow. The pairing-address test must assert visible exact A-42 text inside the Ready column so hidden measurement probes cannot satisfy it. Validate on current main and the same PR; keep the PR open for root review.
What Changed
bill.numberwith fallback toorder.number) with text wrapping to prevent clipping or overflow across 720p, 1080p, and 4K viewports.Risk Assessment
✅ Low: The change is a well-bounded frontend customer display TV paging and layout implementation adhering to all product invariants, with complete test coverage and no remaining defects.
Testing
Driven 7 live scenarios against the active FloCafe backend server (:3001) and Chromium frontend, covering TV viewports (720p, 1080p, 4K) with long receipt identifier wrapping, 10s independent column rotation, live order addition/removal on 3s feed poll, network failure and stale badge indication with retained rows, 401 token revocation row clearing, scoped LAN pairing URL fragment flow with exact visible A-42 assertion, and mobile flow; all scenarios passed with 12 visual screenshot artifacts captured in the evidence directory.
Pipeline
Updates from git push no-mistakes
✅ **intent** - passed
✅ No issues found.
🔧 **Rebase** - 1 issue found → auto-fixed ✅
docs/architecture/frontend.md- merge conflict rebasing onto origin/main🔧 Fix applied.
✅ Re-checked - no issues remain.
✅ **Review** - passed
✅ No issues found.
✅ **Test** - passed
✅ No issues found.
cd frontend && npx playwright test e2e/customer-display-pairing-addresses.spec.ts --project=chromiumcd frontend && npx playwright test e2e/layout-integrity.spec.ts -g "customer display" --project=chromiumnpm run test:customer-display-confignpm run test:customer-display-settings-routenpm run test:customer-display-pairingnode <scratch>/run_live_scenarios.cjs (7 live end-to-end scenarios against running Express backend :3001 and Next.js static export)✅ **Document** - passed
✅ No issues found.
✅ **Lint** - passed
✅ No issues found.
✅ **Push** - passed
✅ No issues found.