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.
58 lines
1.8 KiB
58 lines
1.8 KiB
import type { NextPage } from 'next';
|
|
import Image from 'next/image';
|
|
import { Input } from '../../components/Input';
|
|
import { Button } from '../../components/Button';
|
|
import { useForm } from 'react-hook-form';
|
|
import { useRouter } from 'next/router';
|
|
import { postBasicAuth } from '../../hooks/postBasicAuth';
|
|
import Cookies from 'js-cookie';
|
|
|
|
const indexPage: NextPage = () => {
|
|
|
|
const router = useRouter();
|
|
|
|
const { register, handleSubmit, getValues, formState: { errors } } = useForm();
|
|
|
|
const onSubmit = async (entity: any) => {
|
|
console.log("on submit")
|
|
try {
|
|
let url = process.env.API_URL + "/login";
|
|
const { data, error } = await postBasicAuth(url,getValues("user"),getValues("password") );
|
|
|
|
if (error) {
|
|
console.log(error);
|
|
} else {
|
|
if (data && data.length>0){
|
|
Cookies.set("token",data);
|
|
router.push("/home");
|
|
}
|
|
}
|
|
} catch (e) {
|
|
console.log("Post error:");
|
|
console.table(e);
|
|
}
|
|
}
|
|
|
|
return (
|
|
|
|
<div className='flex flex-col items-center'>
|
|
<Image alt="Logo"
|
|
src={"/logo.png"}
|
|
width={100}
|
|
height={100}
|
|
/>
|
|
<form onSubmit={handleSubmit(onSubmit)}>
|
|
<div className='flex flex-col'>
|
|
<Input id="user" label='Usuario' register={register} />
|
|
{errors.User && <span>This field is required</span>}
|
|
<Input id="password" label='Contraseña' type="password" register={register}/>
|
|
</div>
|
|
<Button type='submit' onClick={()=>{console.log("login")}} title='Login'/>
|
|
</form>
|
|
|
|
</div>
|
|
|
|
)
|
|
}
|
|
|
|
export default indexPage
|