blob: ff2ab61242f2dceaf04df920098c1b118b1eaff6 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
import { useEffect } from 'react'
import Router from 'next/router'
import useSWR from 'swr'
export default function useUser ({
redirectToLogin = false,
redirectToVerify = false,
redirectToApps = false
} = {}) {
const { data: user, mutate: mutateUser } = useSWR('/api/user')
useEffect(() => {
if (!user || (!redirectToLogin && !redirectToVerify && !redirectToApps)) return
if (redirectToLogin && !user?.isLoggedIn) {
Router.push('/login')
}
if (redirectToVerify && user?.isLoggedIn && !user?.isVerified) {
Router.push('/verify')
}
if (
(redirectToApps && user?.isLoggedIn && user?.isVerified)
) {
Router.push('/')
}
}, [user, redirectToLogin, redirectToVerify, redirectToApps])
return { user, mutateUser }
}
|