diff --git a/src/pages/Tour.tsx b/src/pages/Tour.tsx new file mode 100644 index 0000000..eee8319 --- /dev/null +++ b/src/pages/Tour.tsx @@ -0,0 +1,129 @@ +import { toast } from "sonner"; +import { Button } from "@/components/ui/button"; +import { Card, CardContent } from "@/components/ui/card"; +import { Badge } from "@/components/ui/badge"; +import { Calendar, MapPin, Ticket, ExternalLink, Map } from "lucide-react"; +import { useSaasMutation } from "@/hooks/use-tygarun"; +import Header from "@/components/Header"; +import Footer from "@/components/Footer"; + +const upcoming = [ + { date: "Apr 28, 2026", city: "Los Angeles, CA", venue: "The Wiltern", soldOut: false }, + { date: "May 3, 2026", city: "New York, NY", venue: "Brooklyn Steel", soldOut: false }, + { date: "May 10, 2026", city: "Chicago, IL", venue: "Metro Chicago", soldOut: true }, + { date: "May 17, 2026", city: "Austin, TX", venue: "Emos Austin", soldOut: false }, + { date: "May 24, 2026", city: "London, UK", venue: "Electric Brixton", soldOut: false }, + { date: "May 31, 2026", city: "Berlin, DE", venue: "SchwuZ", soldOut: false }, + { date: "Jun 7, 2026", city: "Tokyo, JP", venue: "Shibuya WWW X", soldOut: true }, + { date: "Jun 14, 2026", city: "Toronto, CA", venue: "The Danforth", soldOut: false }, +]; + +const past = [ + { date: "Jan 12, 2026", city: "San Francisco, CA", venue: "The Fillmore" }, + { date: "Dec 15, 2025", city: "Portland, OR", venue: "Crystal Ballroom" }, + { date: "Nov 20, 2025", city: "Seattle, WA", venue: "Neumos" }, +]; + +export default function TourPage() { + const { mutate: buyTicket } = useSaasMutation("event-ticketing", "/checkout"); + + const handleTickets = async (show: { venue: string; city: string }) => { + try { + const res = await buyTicket({ plan: show.venue, city: show.city }); + if (res?.url && res.url !== "#") { window.location.href = res.url; return; } + toast.success(`Tickets reserved for \${show.venue}`); + } catch { + toast.error("Could not start checkout. Please try again."); + } + }; + + return ( +
+
+ + {/* Hero */} +
+

Tour Dates

+

Catch the Chromatic Abyss world tour live in a city near you.

+
+ + {/* Tour Map Placeholder */} +
+
+ +
+
+
+
+
+
+
+
+
+
+
+
+ +

8 cities across North America and Europe

+
+
+ +
+
+ + {/* Upcoming Shows */} +
+
+

Upcoming Shows

+
+ {upcoming.map((show, i) => ( + + +
+ + {show.date} +
+
+
{show.city}
+
{show.venue}
+
+ {show.soldOut ? ( + Sold Out + ) : ( + + )} +
+
+ ))} +
+
+
+ + {/* Past Shows */} +
+
+

Past Shows

+
+ {past.map((show, i) => ( + + +
+ + {show.date} +
+
+
{show.city}
+
{show.venue}
+
+ +
+
+ ))} +
+
+
+ +
+ ); +} \ No newline at end of file