import { User } from "@lib/types" import Cookies from "js-cookie" import { useRouter } from "next/navigation" import { useEffect, useState } from "react" const useUserData = () => { const [authToken, setAuthToken] = useState( Cookies.get("drift-token") || "" ) const [user, setUser] = useState() const router = useRouter() useEffect(() => { const token = Cookies.get("drift-token") if (token) { setAuthToken(token) } }, [setAuthToken]) useEffect(() => { if (authToken) { const fetchUser = async () => { const response = await fetch(`/server-api/user/self`, { headers: { Authorization: `Bearer ${authToken}` } }) if (response.ok) { const user = await response.json() setUser(user) } else { Cookies.remove("drift-token") setAuthToken("") router.push("/") } } fetchUser() } }, [authToken, router]) return user } export default useUserData