fix: wait for auth loading before redirecting in admin pages
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
Some checks are pending
Deploy Elmeg / deploy (push) Waiting to run
This commit is contained in:
parent
83d9e18497
commit
1199023a52
5 changed files with 17 additions and 10 deletions
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
Loading…
Add table
Reference in a new issue