Files
tonePage/tone-page-web/hooks/user/use-user-me.ts
2025-06-19 15:20:02 +08:00

36 lines
936 B
TypeScript

import { UserApi } from "@/lib/api";
import useSWR from "swr";
export function useUserMe({ onError }: { onError?: (e: any) => void } = {}) {
const isClientSide = typeof window !== 'undefined';
const { data: user, isLoading, error } = useSWR(
'/api/user/me',
async () => UserApi.me(),
{
onError: (error) => {
if (error.statusCode === 401) {
if (isClientSide) {
localStorage.removeItem('token');
}
}
onError?.(error);
},
revalidateIfStale: false,
revalidateOnFocus: false,
shouldRetryOnError: (err) => {
if (err.statusCode === 401) {
return false;
}
return true;
},
}
);
return {
user,
isLoading,
error
}
}