Skip to content
Snippets Groups Projects
useUser.ts 784 B
Newer Older
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 
}