aboutsummaryrefslogtreecommitdiffstats
path: root/hooks/useUser.js
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 }
}