shadcn.io is not affiliated with official shadcn/ui
Webinar Registered Success Block for React
A full-height confirmation centred on a ticket: the title, host and time in UTC and in a chosen zone, a QR code of the join link, a time zone select that works the local time from typed offsets, and a real calendar file download.
Installation
Overview
Give a registration a ticket people want to keep, with this webinar confirmation page for React with Base UI. It is the Dawnlight Live page after someone registered, a whole screen with the page's rails and one band across it, centred on a ticket. A check in a muted tile, the heading and one sentence sit over a corner-marked ticket drawn in the theme: the product's tile, the title, the host, the date and time in UTC and the same moment in a chosen zone, and a stub past a dashed edge with a QR Code of the join link. Under the ticket a Native Select picks the time zone from eight, and the local time is worked out from a typed UTC moment and each zone's typed offset. The one primary is the Shine Button Add to calendar, a real Download Trigger that saves an .ics file built in the page, pinned to the foot of a phone's screen. Nothing was registered. For webinar, event and booking tools.
FAQ
What stays in the page, and how do I wire it for real?
Nothing was registered and no seat was held. The webinar, the host, the start (16:00 UTC, 45 minutes) and the join link (under .example, so the QR code leads nowhere) are typed constants. What the browser really does is real: Add to calendar downloads a genuine .ics file. To wire it, build the file on your server or from the registration record (the same helper can run in the page), put the registrant's own unique ID in UID, and point the QR code and the file at the registrant's personal join link.
What is in the calendar file?
One event in iCalendar format with CRLF between lines, as the standard asks: a UID, a DTSTAMP from the registration moment, the start and end in UTC, a summary, a description with the join link, a URL, a location and a 15-minute reminder. Long lines are folded at 75 characters and text is escaped. Because it is in UTC, the calendar app on the device converts it to the viewer's own zone, whatever the select shows. The file is named dawnlight-first-live-class.ics.
How is the local time worked out?
From a lookup, never from the browser's clock or time zone. The start is a typed number of minutes after midnight in UTC; each of the eight zones has a typed offset for the day of the webinar (Europe and the United States are still on daylight time that day, so it is in the offsets), and the sum gives the clock time and the weekday, which moves to the next day for Singapore, Tokyo and Sydney. Choosing a zone changes the ticket's second row and the page's live line, and nothing else. For a real product, take the offsets from each zone's rules at that moment with Intl.DateTimeFormat.
How is the ticket built, and is it accessible?
The ticket is a plain bordered box in the theme with two half-circles cut into its edge and a dashed line where the stub tears off; the cuts are decoration and hidden from assistive technology. The title is a heading, the times are a list of terms and values, the QR code is an image with a text name, and the caption says the code opens the join link. On a phone the stub sits under the ticket's text and the dashed line runs across.
Related
- Pro
A start-aligned confirmation for a scheduled newsletter: a select of three send times in one zone and a table of five audience regions with the local weekday and time the issue lands, worked out from each region's offset.
- Pro
Schedule Meeting Dialog
Time and schedulingA month page with its new event dialog shown open: a title, a day from a folded calendar, a start time and length, guest emails as tags, and a day timeline that moves with the time and warns when the meeting clashes.
- Pro
Conference ticket steppers Contact
Events and datesA conference registration with a stepper for each ticket tier, a running total and an eight-ticket cap.
- Pro
Time Zone Picker Dialog
Time and schedulingA preferences page with its time zone dialog shown open: a search over 14 zones in four regions, each row with its city, UTC offset and the time there at one typed moment, a button that reads this device's zone on a press, and the chosen zone printed back on the page.
- Pro
Timezone and Calendar Settings
Appearance and localeA working hours settings panel: seven bars, one per day, with start and end selects and an Open switch, a week start that turns the rows, a Copy Monday to weekdays button, and a time zone pair that turns the first open day into both zones.
- Pro
A full-height confirmation for a launched email campaign: four sending waves with a bar and a state word each, a Pause sending toggle that holds the running wave, and the email as sent, drawn greyscale in a frame.