Queue display
A React block (a whole screen) in Beamline's Government & legal app.
The screen in a waiting room, read from across the room. It draws only a public projection of the queue (ticket codes and counters, never a name or a phone number), so nothing private can leak by accident. The newest call leads as large as the board allows (code and where to go) and is the only one announced to screen readers; every counter shows the ticket it is serving, the newest marked; the wait for someone joining now is the second figure, over the queue in order with the next ticket marked and the join QR with its link written out. An unknown wait or head count says so instead of a guess; a feed that stopped updating says when it last did. Type follows the board's width, so a TV gets bigger words, not more room.
Use it for
- A TV or wall screen in a waiting room showing who is called and who is waiting.
- Anywhere a public screen must be unable to show private data, and must say when its data is old.
Not for
- The staff board (visit-board).
- The visitor's own phone page (visitor-journey).
Anatomy
- header: the product's mark, the branch, last updated and the clock
- stale notice when the feed stopped
- now serving: the newest called ticket at the board's largest size with an arrow to its counter, on the success tint
- counters: every counter in the room with the ticket it serves and when it was called (the newest marked), or Free
- wait: the wait for someone joining now as the second figure, parties and people counted apart
- queue: the waiting codes in order, the first marked Next, five shown and the rest counted
- join: the QR with the link written out under its title
States
- called: none yet (said in the hero, counters Free); a new call (success, announced once, its counter's row takes the ticket); earlier calls at their counters
- waiting: some (five shown, the rest counted); none (said)
- counts: people known; people not known (said)
- wait: about N min (info); not known yet (said)
- feed: current; stale (warning, last update said)
- narrow: one column, the call, then the wait and the queue, then the counters and the join point
- right to left: the layout mirrors, the arrow turns
- reduced motion: a new call doesn't animate
Keyboard
- Nothing to operate: a display. Screen readers hear each new call once.
Motion
A newly called ticket settles in once; its counter's code rises into place; a called ticket leaves the queue and the rest move up (useFlip). Nothing runs at rest.
Props
| Prop | Type | Default | Description |
|---|---|---|---|
branch (required) | string | — | |
queue (required) | PublicQueue | — | The public projection only; this screen can't show what it isn't given. |
counters | string[] | — | The counters in the room, in the order they stand ("Counter 1", "Counter 2"…). Each shows the ticket it serves, or that it is free. Default: the counters the called tickets name. |
joinUrl | string | — | The join link shown as a QR, with the link itself written under it for anyone who can't scan. |
staleAfter | number | — | Minutes after which the feed reads as stale. |
now | string | — | ISO; the clock on the board and the reference for staleness. Default: now. |
product | string | — | Your product's name, shown as its mark. |
className | string | — | Classes on the documented visual root; no override by default. |
ref | Ref<HTMLDivElement> | — | Receives the documented native target or imperative handle; omitted by default. |
Built from
Import
import { QueueDisplay } from "@beamline/queue-display";
Get it
Queue display is part of Beamline UI. Install the parts you need in your React app as compiled packages or editable source. Get Beamline · Connect your agent
More in Government & legal
- Permit application: A permit application filled in over several sittings on a city's portal. Steps with how many answers each still misses; the draft saved as you go and…
- Permit services: Where a permit starts on a city's permitting portal. The work's address resolved to the city (its permits are here) or the county around it (that office…
- Permit fees: An applicant's permit fees on a city's portal. What's owed across how many permits and how much of it is overdue; every unpaid invoice with its permit…
- Permit record: A submitted permit seen by the applicant. The overview leads with what's waiting on them: the corrections to answer before the next version goes in, each…
- Parcel record: A property's parcel on a permitting portal. The lot drawn to scale as a site plan: the street, the property lines with their lengths, the dashed setback…
- Document review: A PDF going through review: the document in the viewer with every comment pinned to its place, the reviewers' threads beside it (open or resolved, one…
- Signing request: A document sent for signature, its signature page drawn in miniature with each side's block in order. Sides sign as numbered stages that move earlier or…
- Playbook check: A document's changes checked against a versioned playbook (a rulebook of what's acceptable). Each change shows what it was and is now, then two records…
- Audit room: A compliance audit seen by the company preparing it or by the auditor reviewing it. Evidence keeps the company's readiness (not ready, flagged, ready for…
- Agency book: An insurance agency's book in two places. Estimated commission: the report named an estimate (not received or earned), as of a time; each source system…
- Applicant company: A contractor's company on a permitting portal. Its identity with the licence and insurance it applies under, each said valid, expiring within 60 days…
- Applicant projects: An applicant's permits on a city's portal in one place. Projects through saved views (theirs, their company's, expiring within 30 days) and a search…
- Lease renewals: Leases coming up for renewal. The window leads: every tracked lease placed on the days ahead at its end date, coloured by whose step it is (yours, the…
- Visitor journey: A visitor's way into a walk-in queue, on their phone. Branches first: each card names its address, whether it's open (until when, closing soon, full, or…