19 lines
626 B
TypeScript
19 lines
626 B
TypeScript
import { memo, useEffect, useMemo, useState } from "react";
|
|
import UserService from "../services/UserService";
|
|
import AuthService from "../services/AuthService";
|
|
|
|
export default function useUserData<T>(token: string, initData: T): T {
|
|
const [userData, setUserData] = useState<T>(initData)
|
|
|
|
useEffect(()=> {
|
|
const fetchUserData = async (token: string) => {
|
|
const response = await AuthService.getCurrentUser(token)
|
|
setUserData(response.data)
|
|
}
|
|
|
|
fetchUserData(token)
|
|
}, [token])
|
|
|
|
const memoizedData = useMemo<T>(() => userData, [userData])
|
|
return memoizedData
|
|
} |