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() {
|
export default function AdminArtistsPage() {
|
||||||
const { user, token } = useAuth()
|
const { user, token, loading: authLoading } = useAuth()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [artists, setArtists] = useState<Artist[]>([])
|
const [artists, setArtists] = useState<Artist[]>([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
@ -38,6 +38,7 @@ export default function AdminArtistsPage() {
|
||||||
const [saving, setSaving] = useState(false)
|
const [saving, setSaving] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (authLoading) return
|
||||||
if (!user) {
|
if (!user) {
|
||||||
router.push("/login")
|
router.push("/login")
|
||||||
return
|
return
|
||||||
|
|
@ -47,7 +48,7 @@ export default function AdminArtistsPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fetchArtists()
|
fetchArtists()
|
||||||
}, [user, router])
|
}, [user, router, authLoading])
|
||||||
|
|
||||||
const fetchArtists = async () => {
|
const fetchArtists = async () => {
|
||||||
if (!token) return
|
if (!token) return
|
||||||
|
|
|
||||||
|
|
@ -50,7 +50,7 @@ interface UserItem {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function AdminPage() {
|
export default function AdminPage() {
|
||||||
const { user, token } = useAuth()
|
const { user, token, loading: authLoading } = useAuth()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [stats, setStats] = useState<PlatformStats | null>(null)
|
const [stats, setStats] = useState<PlatformStats | null>(null)
|
||||||
const [users, setUsers] = useState<UserItem[]>([])
|
const [users, setUsers] = useState<UserItem[]>([])
|
||||||
|
|
@ -59,6 +59,9 @@ export default function AdminPage() {
|
||||||
const [editingUser, setEditingUser] = useState<UserItem | null>(null)
|
const [editingUser, setEditingUser] = useState<UserItem | null>(null)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
// Wait for auth to finish loading before checking
|
||||||
|
if (authLoading) return
|
||||||
|
|
||||||
if (!user) {
|
if (!user) {
|
||||||
router.push("/login")
|
router.push("/login")
|
||||||
return
|
return
|
||||||
|
|
@ -68,7 +71,7 @@ export default function AdminPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fetchData()
|
fetchData()
|
||||||
}, [user, router])
|
}, [user, router, authLoading])
|
||||||
|
|
||||||
const fetchData = async () => {
|
const fetchData = async () => {
|
||||||
if (!token) return
|
if (!token) return
|
||||||
|
|
|
||||||
|
|
@ -33,7 +33,7 @@ interface Show {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function AdminShowsPage() {
|
export default function AdminShowsPage() {
|
||||||
const { user, token } = useAuth()
|
const { user, token, loading: authLoading } = useAuth()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [shows, setShows] = useState<Show[]>([])
|
const [shows, setShows] = useState<Show[]>([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
@ -42,6 +42,7 @@ export default function AdminShowsPage() {
|
||||||
const [saving, setSaving] = useState(false)
|
const [saving, setSaving] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (authLoading) return
|
||||||
if (!user) {
|
if (!user) {
|
||||||
router.push("/login")
|
router.push("/login")
|
||||||
return
|
return
|
||||||
|
|
@ -51,7 +52,7 @@ export default function AdminShowsPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fetchShows()
|
fetchShows()
|
||||||
}, [user, router])
|
}, [user, router, authLoading])
|
||||||
|
|
||||||
const fetchShows = async () => {
|
const fetchShows = async () => {
|
||||||
if (!token) return
|
if (!token) return
|
||||||
|
|
|
||||||
|
|
@ -31,7 +31,7 @@ interface Song {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function AdminSongsPage() {
|
export default function AdminSongsPage() {
|
||||||
const { user, token } = useAuth()
|
const { user, token, loading: authLoading } = useAuth()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [songs, setSongs] = useState<Song[]>([])
|
const [songs, setSongs] = useState<Song[]>([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
@ -40,6 +40,7 @@ export default function AdminSongsPage() {
|
||||||
const [saving, setSaving] = useState(false)
|
const [saving, setSaving] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (authLoading) return
|
||||||
if (!user) {
|
if (!user) {
|
||||||
router.push("/login")
|
router.push("/login")
|
||||||
return
|
return
|
||||||
|
|
@ -49,7 +50,7 @@ export default function AdminSongsPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fetchSongs()
|
fetchSongs()
|
||||||
}, [user, router])
|
}, [user, router, authLoading])
|
||||||
|
|
||||||
const fetchSongs = async () => {
|
const fetchSongs = async () => {
|
||||||
if (!token) return
|
if (!token) return
|
||||||
|
|
|
||||||
|
|
@ -30,7 +30,7 @@ interface Venue {
|
||||||
}
|
}
|
||||||
|
|
||||||
export default function AdminVenuesPage() {
|
export default function AdminVenuesPage() {
|
||||||
const { user, token } = useAuth()
|
const { user, token, loading: authLoading } = useAuth()
|
||||||
const router = useRouter()
|
const router = useRouter()
|
||||||
const [venues, setVenues] = useState<Venue[]>([])
|
const [venues, setVenues] = useState<Venue[]>([])
|
||||||
const [loading, setLoading] = useState(true)
|
const [loading, setLoading] = useState(true)
|
||||||
|
|
@ -39,6 +39,7 @@ export default function AdminVenuesPage() {
|
||||||
const [saving, setSaving] = useState(false)
|
const [saving, setSaving] = useState(false)
|
||||||
|
|
||||||
useEffect(() => {
|
useEffect(() => {
|
||||||
|
if (authLoading) return
|
||||||
if (!user) {
|
if (!user) {
|
||||||
router.push("/login")
|
router.push("/login")
|
||||||
return
|
return
|
||||||
|
|
@ -48,7 +49,7 @@ export default function AdminVenuesPage() {
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
fetchVenues()
|
fetchVenues()
|
||||||
}, [user, router])
|
}, [user, router, authLoading])
|
||||||
|
|
||||||
const fetchVenues = async () => {
|
const fetchVenues = async () => {
|
||||||
if (!token) return
|
if (!token) return
|
||||||
|
|
|
||||||
Loading…
Add table
Reference in a new issue