import { setAuthToken } from "@/utils/token-storage" import { useMutation, useQuery, useQueryClient } from "@tanstack/react-query" import { AxiosError } from "axios" import { get_current_user, post_login } from "./_client" import { UserResponse } from "./types" export const useCurrentUser = () => { return useQuery({ queryKey: ["current-user"], queryFn: async () => { const result = await get_current_user(); return result.user; }, }) } interface LoginFuncAttrs { email: string, password: string } export const useLoginMutation = () => { const queryClient = useQueryClient(); return useMutation({ mutationFn: ({ email, password }: LoginFuncAttrs) => post_login(email, password), onSuccess: async (data) => { await setAuthToken(data.access_token); queryClient.invalidateQueries({ queryKey: ["current-user"] }); } }); }