From 1199023a521228091c3b30c63b417c537800a51b Mon Sep 17 00:00:00 2001 From: fullsizemalt <106900403+fullsizemalt@users.noreply.github.com> Date: Wed, 24 Dec 2025 13:22:40 -0800 Subject: [PATCH] fix: wait for auth loading before redirecting in admin pages --- frontend/app/admin/artists/page.tsx | 5 +++-- frontend/app/admin/page.tsx | 7 +++++-- frontend/app/admin/shows/page.tsx | 5 +++-- frontend/app/admin/songs/page.tsx | 5 +++-- frontend/app/admin/venues/page.tsx | 5 +++-- 5 files changed, 17 insertions(+), 10 deletions(-) diff --git a/frontend/app/admin/artists/page.tsx b/frontend/app/admin/artists/page.tsx index caf3e6b..7c2ab84 100644 --- a/frontend/app/admin/artists/page.tsx +++ b/frontend/app/admin/artists/page.tsx @@ -29,7 +29,7 @@ interface Artist { } export default function AdminArtistsPage() { - const { user, token } = useAuth() + const { user, token, loading: authLoading } = useAuth() const router = useRouter() const [artists, setArtists] = useState([]) const [loading, setLoading] = useState(true) @@ -38,6 +38,7 @@ export default function AdminArtistsPage() { const [saving, setSaving] = useState(false) useEffect(() => { + if (authLoading) return if (!user) { router.push("/login") return @@ -47,7 +48,7 @@ export default function AdminArtistsPage() { return } fetchArtists() - }, [user, router]) + }, [user, router, authLoading]) const fetchArtists = async () => { if (!token) return diff --git a/frontend/app/admin/page.tsx b/frontend/app/admin/page.tsx index caf6120..3212b82 100644 --- a/frontend/app/admin/page.tsx +++ b/frontend/app/admin/page.tsx @@ -50,7 +50,7 @@ interface UserItem { } export default function AdminPage() { - const { user, token } = useAuth() + const { user, token, loading: authLoading } = useAuth() const router = useRouter() const [stats, setStats] = useState(null) const [users, setUsers] = useState([]) @@ -59,6 +59,9 @@ export default function AdminPage() { const [editingUser, setEditingUser] = useState(null) useEffect(() => { + // Wait for auth to finish loading before checking + if (authLoading) return + if (!user) { router.push("/login") return @@ -68,7 +71,7 @@ export default function AdminPage() { return } fetchData() - }, [user, router]) + }, [user, router, authLoading]) const fetchData = async () => { if (!token) return diff --git a/frontend/app/admin/shows/page.tsx b/frontend/app/admin/shows/page.tsx index d840d47..e120081 100644 --- a/frontend/app/admin/shows/page.tsx +++ b/frontend/app/admin/shows/page.tsx @@ -33,7 +33,7 @@ interface Show { } export default function AdminShowsPage() { - const { user, token } = useAuth() + const { user, token, loading: authLoading } = useAuth() const router = useRouter() const [shows, setShows] = useState([]) const [loading, setLoading] = useState(true) @@ -42,6 +42,7 @@ export default function AdminShowsPage() { const [saving, setSaving] = useState(false) useEffect(() => { + if (authLoading) return if (!user) { router.push("/login") return @@ -51,7 +52,7 @@ export default function AdminShowsPage() { return } fetchShows() - }, [user, router]) + }, [user, router, authLoading]) const fetchShows = async () => { if (!token) return diff --git a/frontend/app/admin/songs/page.tsx b/frontend/app/admin/songs/page.tsx index fb54d4b..688eb4e 100644 --- a/frontend/app/admin/songs/page.tsx +++ b/frontend/app/admin/songs/page.tsx @@ -31,7 +31,7 @@ interface Song { } export default function AdminSongsPage() { - const { user, token } = useAuth() + const { user, token, loading: authLoading } = useAuth() const router = useRouter() const [songs, setSongs] = useState([]) const [loading, setLoading] = useState(true) @@ -40,6 +40,7 @@ export default function AdminSongsPage() { const [saving, setSaving] = useState(false) useEffect(() => { + if (authLoading) return if (!user) { router.push("/login") return @@ -49,7 +50,7 @@ export default function AdminSongsPage() { return } fetchSongs() - }, [user, router]) + }, [user, router, authLoading]) const fetchSongs = async () => { if (!token) return diff --git a/frontend/app/admin/venues/page.tsx b/frontend/app/admin/venues/page.tsx index 156c49c..1e47d6d 100644 --- a/frontend/app/admin/venues/page.tsx +++ b/frontend/app/admin/venues/page.tsx @@ -30,7 +30,7 @@ interface Venue { } export default function AdminVenuesPage() { - const { user, token } = useAuth() + const { user, token, loading: authLoading } = useAuth() const router = useRouter() const [venues, setVenues] = useState([]) const [loading, setLoading] = useState(true) @@ -39,6 +39,7 @@ export default function AdminVenuesPage() { const [saving, setSaving] = useState(false) useEffect(() => { + if (authLoading) return if (!user) { router.push("/login") return @@ -48,7 +49,7 @@ export default function AdminVenuesPage() { return } fetchVenues() - }, [user, router]) + }, [user, router, authLoading]) const fetchVenues = async () => { if (!token) return