From 485d6413e22790d4601b22a5a6c37639a9b585f0 Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Fri, 26 Dec 2025 12:30:35 -0800 Subject: [PATCH] Fix hydration error, add venues page error handling --- frontend/app/layout.tsx | 2 +- frontend/app/venues/page.tsx | 14 ++++++++++++++ 2 files changed, 15 insertions(+), 1 deletion(-) diff --git a/frontend/app/layout.tsx b/frontend/app/layout.tsx index 6eb991b..66eeb18 100644 --- a/frontend/app/layout.tsx +++ b/frontend/app/layout.tsx @@ -31,7 +31,7 @@ export default function RootLayout({ }>) { return ( - ([]) const [loading, setLoading] = useState(true) + const [error, setError] = useState(null) const [searchQuery, setSearchQuery] = useState("") const [stateFilter, setStateFilter] = useState("") const [sortBy, setSortBy] = useState("name") @@ -30,6 +31,7 @@ export default function VenuesPage() { useEffect(() => { async function fetchVenues() { try { + setError(null) // Fetch venues const venuesRes = await fetch(`${getApiUrl()}/venues/?limit=100`) const venuesData: Venue[] = await venuesRes.json() @@ -55,6 +57,7 @@ export default function VenuesPage() { setVenues(venuesWithCounts) } catch (error) { console.error("Failed to fetch venues:", error) + setError("Failed to load venues. Please try again.") } finally { setLoading(false) } @@ -102,6 +105,17 @@ export default function VenuesPage() { return result }, [venues, searchQuery, stateFilter, sortBy]) + if (error) { + return ( +
+ +

Unable to Load Venues

+

{error}

+ +
+ ) + } + if (loading) { return (