aboutsummaryrefslogtreecommitdiffstats
path: root/hooks/useUser.js
diff options
context:
space:
mode:
authorGravatar piotrruss <mail@pruss.it> 2021-09-02 22:28:11 +0200
committerGravatar piotrruss <mail@pruss.it> 2021-09-02 23:54:56 +0200
commitf08f6ca0a9d337efff280d4d1669a41b5d9c31c2 (patch)
tree7dee778ba742deb5f499f2aa08a1ba040606d633 /hooks/useUser.js
parent9f74c550927671f4ded301d0cf3e9d592716375c (diff)
downloadmy_apps-f08f6ca0a9d337efff280d4d1669a41b5d9c31c2.tar.gz
my_apps-f08f6ca0a9d337efff280d4d1669a41b5d9c31c2.tar.bz2
my_apps-f08f6ca0a9d337efff280d4d1669a41b5d9c31c2.zip
finish translations, force maximize
Diffstat (limited to 'hooks/useUser.js')
-rw-r--r--hooks/useUser.js33
1 files changed, 33 insertions, 0 deletions
diff --git a/hooks/useUser.js b/hooks/useUser.js
new file mode 100644
index 0000000..16833aa
--- /dev/null
+++ b/hooks/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}
+}