import React from "react"; import { formOptions, useForm } from "@tanstack/react-form"; import { app } from "@/lib/apiTreaty"; import { Label } from "@/components/ui/label"; import { Input } from "@/components/ui/input"; import { Button } from "@/components/ui/button"; import { Alert, AlertTitle } from "@/components/ui/alert"; import { AlertCircle } from "lucide-react"; const PUBLIC_FRONTEND_URL = import.meta.env.PUBLIC_FRONTEND_URL as string; export default function LoginForm() { const formOpts = formOptions({ defaultValues: { email: "", contraseña: "", }, }); const form = useForm({ ...formOpts, onSubmit: () => { // Do something with form data console.log("onSubmit"); window.location.assign(PUBLIC_FRONTEND_URL + "/products"); }, validators: { onSubmitAsync: async ({ value }) => { // Do something with form data console.log("onSubmit validator"); const { data } = await app.auth.password.post({ email: value.email, password: value.contraseña, }); console.log(data); if (data?.status != "ok") { return "Usuario o contraseña incorrrectos"; } return undefined; }, }, }); return ( <>
{ e.preventDefault(); e.stopPropagation(); void form.handleSubmit(); }} >
value.length > 0 ? null : "El email no puede estar vacío", }} children={(field) => ( <> field.handleChange(e.target.value)} /> {field.state.meta.errors.length > 0 ? ( {field.state.meta.errors.join(", ")} ) : null} )} />
value.length > 0 ? null : "La contraseña no puede estar vacía", }} children={(field) => ( <> field.handleChange(e.target.value)} /> {field.state.meta.errors.length > 0 ? ( {field.state.meta.errors.join(", ")} ) : null} )} />
[state.errorMap]} children={([errorMap]) => errorMap.onSubmit ? ( Usuario o contraseña incorrrectos ) : null } /> [state.canSubmit, state.isSubmitting]} children={([canSubmit, isSubmitting]) => ( )} />
); }