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 (