Skip to content

Dev - #71

Merged
Atesta103 merged 11 commits into
mainfrom
dev
Jul 24, 2026
Merged

Dev#71
Atesta103 merged 11 commits into
mainfrom
dev

Conversation

@Atesta103

Copy link
Copy Markdown
Owner

No description provided.

Atesta103 and others added 11 commits July 24, 2026 11:22
Design doc for a downloadable ticket image on /wait, giving customers a
device-independent way back to their queue position (name, arrival time,
position snapshot, recovery code, QR code) beyond the current
localStorage-only auto-redirect.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
7 tasks: pure time/URL helpers, html-to-image dependency, TicketCard
component, /retrouver QR pre-fill, merchant logo/brand-color plumbing,
WaitClient wiring, and manual verification on the dev Preview
deployment rather than local dev — per this session's explicit request
to stop fighting local-only quirks (StrictMode double-invoke,
geolocation) that don't reproduce on a real deployed build.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
…existing merchant TicketCard

Task 3 named the new customer-facing, downloadable-ticket component
"TicketCard" without checking for an existing name — a component with
that exact name and path already existed for the merchant dashboard's
queue list (components/sections/QueueList.tsx, app/design-system/page.tsx),
with an entirely different prop contract (id, status, onCall/onComplete/
onCancel/onReportName). The implementer's commit silently overwrote it,
which would have broken the merchant queue dashboard.

Restores components/composed/TicketCard.tsx and its story to their
pre-Task-3 state, and adds the new component under its own name,
TicketDownloadCard, in TicketDownloadCard.tsx / TicketDownloadCard.stories.tsx.
Updates the plan document throughout so Tasks 4-6 reference the correct
name going forward.

Verified: tsc --noEmit clean, eslint clean, app-storybook contract check
passes, both merchant-facing importers (QueueList.tsx, design-system/page.tsx)
resolve against the restored original with no changes needed on their end.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
The review flagged the eslint-disable comment as suppressing the wrong
rule: it targeted exhaustive-deps, which wasn't actually firing (no
missing dep — setCustomerName/setCode are stable, parseRecoverParams
is a stable import), while the real warning was
react-hooks/set-state-in-effect ("calling setState synchronously
within an effect can trigger cascading renders").

Applies the same fix already established in this codebase for the
identical warning (CarteClient.tsx's geolocation effect): defer the
setState calls via setTimeout(0), matching the "defer to avoid a
synchronous setState in the effect body" pattern used there. No
remaining eslint-disable needed either — the deferred version doesn't
trigger the exhaustive-deps rule.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
The final whole-branch review caught that WaitClient.tsx passes the live
polled position (WaitClient.tsx:458), not a snapshot frozen at the
"Enregistrer" click as originally specced. Confirmed with the user this
is the preferred behavior — live is arguably more accurate than a value
that could go stale while the dialog sits open — so the code stays as
built and the spec is corrected to describe it, rather than leaving a
written contradiction.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
@vercel

vercel Bot commented Jul 24, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
waitlight Ready Ready Preview, Comment Jul 24, 2026 10:13am

@Atesta103
Atesta103 merged commit 48a2fd0 into main Jul 24, 2026
5 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant