messiasads's picture
refactor to local use only
8185bfc
raw
history blame
1.48 kB
/* eslint-disable @typescript-eslint/no-explicit-any */
"use client";
import { useQuery, useQueryClient } from "@tanstack/react-query";
import { useRouter } from "next/navigation";
import { User } from "@/types";
import { isAuthenticated } from "@/lib/auth";
import { toast } from "sonner";
export const useUser = (initialData?: {
user: User | null;
errCode: number | null;
}) => {
const client = useQueryClient();
const router = useRouter();
const { data: { user, errCode } = { user: null, errCode: null }, isLoading } =
useQuery({
queryKey: ["user.me"],
queryFn: async () => {
const authResult = await isAuthenticated();
if (authResult && "id" in authResult) {
return { user: authResult as User, errCode: null };
}
return { user: null, errCode: 401 };
},
refetchOnWindowFocus: false,
refetchOnReconnect: false,
refetchOnMount: false,
retry: false,
initialData: initialData
? { user: initialData?.user, errCode: initialData?.errCode }
: undefined,
enabled: true, // Enable the query to fetch the mock user
});
const logout = async () => {
// Since authentication is removed, just reload the page
toast.success("Logout successful");
client.setQueryData(["user.me"], {
user: null,
errCode: null,
});
window.location.reload();
};
return {
user,
errCode,
loading: isLoading,
logout,
};
};