blob: 16833aaf1f8564198ed06343b5da64123726ba99 (
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
32
33
|
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('/')
}
return
}, [user, redirectToLogin, redirectToVerify, redirectToApps])
return {user, mutateUser}
}
|