From e9367f0a5ddda144d54689def660b3b000f3b74f Mon Sep 17 00:00:00 2001
From: Matt Kirby <MattJKirby@outlook.com>
Date: Sun, 16 Apr 2023 21:40:07 +0100
Subject: [PATCH] Added new super duper useUser hook

---
 daily-thought-frontend/src/hooks/useUser.ts | 30 +++++++++++++++++++++
 1 file changed, 30 insertions(+)
 create mode 100644 daily-thought-frontend/src/hooks/useUser.ts

diff --git a/daily-thought-frontend/src/hooks/useUser.ts b/daily-thought-frontend/src/hooks/useUser.ts
new file mode 100644
index 00000000..7e7d303e
--- /dev/null
+++ b/daily-thought-frontend/src/hooks/useUser.ts
@@ -0,0 +1,30 @@
+import { User } from "@/types/user"
+import Router from "next/router"
+import { useState, useEffect } from "react"
+
+export const useUser = () => {
+  const [user, setUser] = useState<undefined | User>(undefined)
+
+  const fetchUser = async () => {
+    const endpoint = `${process.env.NEXT_PUBLIC_USER_SERVICE_URL}api/user/${sessionStorage.getItem('username')}`
+    const response = await fetch(endpoint)
+    return await response.json()
+    
+  }
+
+  useEffect(() => {
+    if(sessionStorage.length < 2){
+      Router.push("/")
+    }
+  })
+
+  useEffect(() => {
+    if(!user){
+      fetchUser().then(res => {
+        const {_id, username, email, profile, firstName, lastName } = res
+        setUser({id: _id, email, username, profile, firstName, lastName})
+      })
+    }
+  })
+  return user 
+}
\ No newline at end of file
-- 
GitLab