fix: wait for auth loading before redirecting in admin pages
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run

This commit is contained in:
fullsizemalt 2025-12-24 13:22:40 -08:00
parent 83d9e18497
commit 1199023a52
5 changed files with 17 additions and 10 deletions

View file

@ -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<Artist[]>([])
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

View file

@ -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<PlatformStats | null>(null)
const [users, setUsers] = useState<UserItem[]>([])
@ -59,6 +59,9 @@ export default function AdminPage() {
const [editingUser, setEditingUser] = useState<UserItem | null>(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

View file

@ -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<Show[]>([])
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

View file

@ -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<Song[]>([])
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

View file

@ -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<Venue[]>([])
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