You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
72 lines
2.3 KiB
72 lines
2.3 KiB
'use client'
|
|
|
|
import { FC } from 'react'
|
|
import { useBasicAuth } from 'hooks/useBasicAuth';
|
|
import { useRouter } from 'next/navigation'
|
|
import { useForm } from 'react-hook-form';
|
|
import Cookies from 'js-cookie';
|
|
|
|
|
|
interface Props {
|
|
}
|
|
|
|
export const Form:FC <Props> = () => {
|
|
|
|
const router = useRouter();
|
|
|
|
const { register, handleSubmit, getValues, formState: { errors } } = useForm();
|
|
|
|
const onSubmit = async (entity: any) => {
|
|
console.log("on submit")
|
|
try {
|
|
|
|
|
|
const { data, error } = await useBasicAuth("/login",getValues("user"),getValues("password") );
|
|
|
|
if (error) {
|
|
console.log(error);
|
|
} else {
|
|
if (data && data.length>0){
|
|
Cookies.set("token",data);
|
|
router.push("/dashboard");
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.log("Post error:");
|
|
console.table(e);
|
|
}
|
|
}
|
|
return (
|
|
<>
|
|
<form onSubmit={handleSubmit(onSubmit)}>
|
|
<div className="form-control">
|
|
<label className="label">
|
|
<span className="label-text">Email</span>
|
|
</label>
|
|
<input
|
|
type="text"
|
|
placeholder="Usuario"
|
|
className="input input-bordered"
|
|
{...register("user")}/>
|
|
</div>
|
|
<div className="form-control">
|
|
<label className="label">
|
|
<span className="label-text">Password</span>
|
|
</label>
|
|
<input
|
|
type="password"
|
|
placeholder="password"
|
|
className="input input-bordered"
|
|
{...register("password")}
|
|
/>
|
|
<label className="label">
|
|
<a href="#" className="label-text-alt link link-hover">Forgot password?</a>
|
|
</label>
|
|
</div>
|
|
<div className="form-control mt-6">
|
|
<button type="submit" className="btn btn-primary">Login</button>
|
|
</div>
|
|
</form>
|
|
</>
|
|
)
|
|
} |