Files
latosa-escrima/frontend/hooks/use-login.tsx
2025-01-22 17:39:03 +01:00

40 lines
858 B
TypeScript

"use client";
import { setCookie } from "cookies-next";
import useApiMutation, { ApiResponse } from "./use-api";
import { useEffect, useState } from "react";
import { API_URL } from "@/lib/constants";
export interface LoginArgs {
email: string;
password: string;
}
export default function useLogin() {
const {
trigger,
isMutating: loading,
isSuccess,
} = useApiMutation<string, LoginArgs>(
"/users/login",
undefined,
"POST",
false,
true,
);
const login = async (inputs: LoginArgs) => {
try {
const res = await trigger(inputs);
if (!res) throw new Error("The server hasn't responded.");
if (res.status === "Error") throw new Error(res.message);
if (res.data) setCookie("auth_token", res.data);
return res;
} catch (error: any) {
throw new Error(error.message);
}
};
return { login, loading, isSuccess };
}