import { useDispatch } from "react-redux";
import { notification } from "antd";
import {setError, setUser} from "../../../Redux/Slices/authSlice.js";
import {useLoginMutation} from "../../../Api/authApi.js";

const useLoginPage = () => {
    const dispatch = useDispatch();
    const [loginUser, { isLoading }] = useLoginMutation();

    const onFinish = async (loginData) => {
        try {
            const response = await loginUser(loginData).unwrap();
            const token = response.access_token || response.token;
            if (!token) {
                throw new Error("Токен не получен от сервера");
            }
            localStorage.setItem("access_token", token);
            dispatch(setUser({ token }));
        } catch (error) {
            const errorMessage = error?.data?.message || "Не удалось войти";
            dispatch(setError(errorMessage));
            notification.error({
                message: "Ошибка при входе",
                description: errorMessage,
                placement: "topRight",
            });
        }
    };

    return {
        onFinish,
        isLoading,
    };
};

export default useLoginPage;