import { Container, FormTextField } from "@/components"; import { FormSubmitButton } from "@/components/Forms/FormSubmitButton"; import { UeckoLogo } from "@/components/UeckoLogo/UeckoLogo"; import { useLogin } from "@/lib/hooks"; import { Alert, AlertDescription, AlertTitle, Card, CardContent, CardDescription, CardHeader, CardTitle, Form, } from "@/ui"; import { joiResolver } from "@hookform/resolvers/joi"; import { ILogin_DTO } from "@shared/contexts"; import { t } from "i18next"; import Joi from "joi"; import { AlertCircleIcon } from "lucide-react"; import { SubmitHandler, useForm } from "react-hook-form"; import { Trans } from "react-i18next"; import { Link } from "react-router-dom"; import SpanishJoiMessages from "../../spanish-joi-messages.json"; type LoginDataForm = ILogin_DTO; export const LoginPage = () => { const { mutate: login } = useLogin({ onSuccess: (data) => { const { success, error } = data; if (!success && error) { form.setError("root", error); } }, }); const form = useForm({ mode: "onBlur", defaultValues: { email: "", password: "", }, resolver: joiResolver( Joi.object({ email: Joi.string() .email({ tlds: { allow: false } }) .required(), password: Joi.string().min(4).alphanum().required(), }), { messages: SpanishJoiMessages, } ), }); const onSubmit: SubmitHandler = async (data) => { login({ email: data.email, password: data.password }, {}); }; return (

{form.formState.errors.root?.message && ( {form.formState.errors.root?.message} )}

Image
); };