29 lines
665 B
TypeScript
29 lines
665 B
TypeScript
import type { ComponentProps } from "react";
|
|
|
|
import { useLocation, useNavigate } from "react-router";
|
|
|
|
import { useAuth } from "../../model/auth-context";
|
|
import { AuthForm } from "../AuthForm/AuthForm";
|
|
|
|
function useLoginFormVm() {
|
|
const { login } = useAuth();
|
|
const navigate = useNavigate();
|
|
const location = useLocation();
|
|
|
|
const returnTo
|
|
= (location.state as null
|
|
| { returnTo?: string })?.returnTo ?? "/accounts";
|
|
|
|
const onSubmit: ComponentProps<typeof AuthForm>["onSubmit"] = async (
|
|
email,
|
|
password,
|
|
) => {
|
|
await login(email, password);
|
|
await navigate(returnTo, { replace: true });
|
|
};
|
|
|
|
return { onSubmit };
|
|
}
|
|
|
|
export { useLoginFormVm };
|