Event Ticket Booking
An event ticket booking block: a wide banner image with the event name, date, and venue, followed by General/VIP/Backstage ticket tier cards each listing perks and its own +/- quantity stepper. An order total sums price times quantity across all tiers, updating live as quantities change.
Docs
Installation
A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its button, media-slot dependencies and any missing npm packages, and installs them straight into your project.
npx shadcn add https://staaarter.com/r/event-ticket-booking.jsonPrefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/booking/booking9.tsx instead.
Usage
The file also exports booking9Demo, the exact props behind the preview above. Spread it to get a working section in one line, then replace it with your own data.
import { Booking9, booking9Demo } from "@/components/blocks/booking/booking9"; export default function Page() { return <Booking9 {...booking9Demo} />; }
Props
| Prop | Type | Default | Description |
|---|---|---|---|
| eventName | string | "Nightlight Music Festival" | Event title shown under the banner. |
| eventDate | string | "Sat, Oct 3 · 6:00 PM" | Event date/time string. |
| eventVenue | string | "Riverside Amphitheater" | Event venue string. |
| image | { src: string; alt: string } | none | Banner image for the MediaSlot. |
| tiers | Booking9Tier[] | none | Ticket tiers with price and perks. |
| className | string | none | Extra classes for the outer section element. |
Types
interface Booking9Tier { id: string; name: string; price: number; perks: string[]; maxQuantity?: number; }
Behavior notes
- Each ticket tier has its own real quantity stepper, tracked in a single useState record keyed by tier id, clamped between 0 and the tier's maxQuantity (default 8).
- The order total and ticket count are computed live from the quantity state and each tier's price.
- The 'Checkout' button disables when no tickets are selected but does not submit anywhere, it's decorative beyond that disabled state.
More Booking Blocks
View all →date-time-picker
Date & Time Picker
Split-panel scheduler: a real monthly calendar on the left, morning/afternoon time slots on the right, and a live booking summary footer.
reservation-summary
Reservation Summary
A static booking confirmation card with service, date/time, provider avatar, price breakdown, promo code field, and cancellation policy.
appointment-list
Appointment List
Upcoming and past appointments grouped by date, with provider avatar, status badge, and reschedule/cancel actions.
service-selector
Service Selector
Category-tabbed grid of bookable services with icon, description, duration, and price.
provider-picker
Provider Picker
A selectable grid of staff/provider cards with rating, reviews, availability, and an Any Provider fallback.
restaurant-reservation
Restaurant Reservation
Table reservation form with a guest stepper, date/time inputs, seating pills, and a live summary panel.