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