Staaarter

Multi-City Tour Dates

Lists each tour stop as a hairline-divided row with its city, venue, date, and remaining-seats count; sold-out stops render visually muted with a "Sold out" badge instead of a seat count and no reserve action. Beside the list (stacked on mobile, two columns on desktop), a sticky "Locations" summary card lists every city with a map-pin icon. Perfect for a recurring workshop or roadshow touring multiple cities.

By Staaarter Team
Event
Docs
Live preview

Docs

Installation

A real shadcn registry command, not a copy-paste stand-in: it fetches this block plus its badge, button dependencies and any missing npm packages, and installs them straight into your project.

npx shadcn add https://staaarter.com/r/multi-city-tour-dates.json

Prefer not to use the CLI? Copy the source from the Code toggle above into src/components/blocks/event/event25.tsx instead.

Usage

The file also exports event25Demo, 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 { Event25, event25Demo } from "@/components/blocks/event/event25";

export default function Page() {
  return <Event25 {...event25Demo} />;
}

Props

PropTypeDefaultDescription
eyebrowstringundefinedSmall label above the heading, e.g. the tour year.
headingReactNodenoneSection heading.
descriptionstringundefinedSupporting copy under the heading.
stopsTourStop[]noneEvery tour stop, rendered both as the main list of rows and, by city, in the sticky Locations card.
locationsHeadingstring"Locations"Heading of the sticky summary card.
classNamestringnoneExtra classes for the outer section element.

Types

interface TourStop {
  city: string;
  venue: string;
  date: string;
  seatsLeft?: number;
  soldOut?: boolean;
}

Behavior notes

  • This is a static, presentational block: stops render exactly the props given, there is no live seat count and no real reservation flow behind the Reserve button.
  • A stop's soldOut flag both mutes its row (reduced opacity, muted-foreground city text) and swaps the seats-left count + Reserve button for a plain "Sold out" badge with no link — a sold-out stop has no clickable element.
  • The sticky Locations card is a plain lg:sticky positioned summary, not a real map or interactive location picker.