"use client" import { useEffect, useState } from "react" import { getApiUrl } from "@/lib/api-config" import { Card, CardContent, CardHeader, CardTitle } from "@/components/ui/card" import Link from "next/link" import { MapPin } from "lucide-react" interface Venue { id: number name: string city: string state: string country: string } export default function VenuesPage() { const [venues, setVenues] = useState([]) const [loading, setLoading] = useState(true) useEffect(() => { fetch(`${getApiUrl()}/venues/?limit=100`) .then(res => res.json()) .then(data => { // Sort alphabetically const sorted = data.sort((a: Venue, b: Venue) => a.name.localeCompare(b.name)) setVenues(sorted) }) .catch(console.error) .finally(() => setLoading(false)) }, []) if (loading) return
Loading venues...
return (

Venues

Explore the iconic venues where the magic happens.

{venues.map((venue) => ( {venue.name}

{venue.city}, {venue.state}

))}
) }