diff options
author | 2021-08-09 21:36:03 +0200 | |
---|---|---|
committer | 2021-08-09 21:37:03 +0200 | |
commit | 464e470441287572cfda8d95484f781236b9db35 (patch) | |
tree | 87177837cb6ee6ee000f0d39fa5ba7ee6bb2943e /lib/useUser.js | |
download | my_apps-464e470441287572cfda8d95484f781236b9db35.tar.gz my_apps-464e470441287572cfda8d95484f781236b9db35.tar.bz2 my_apps-464e470441287572cfda8d95484f781236b9db35.zip |
init commit
Diffstat (limited to 'lib/useUser.js')
-rw-r--r-- | lib/useUser.js | 33 |
1 files changed, 33 insertions, 0 deletions
diff --git a/lib/useUser.js b/lib/useUser.js new file mode 100644 index 0000000..16833aa --- /dev/null +++ b/lib/useUser.js @@ -0,0 +1,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} +} |