openstock/app/(auth)/sign-in/page.tsx

72 lines
2.1 KiB
TypeScript

'use client';
import { useForm } from 'react-hook-form';
import { Button } from '@/components/ui/button';
import InputField from '@/components/forms/InputField';
import FooterLink from '@/components/forms/FooterLink';
import OpenDevSocietyBranding from "@/components/OpenDevSocietyBranding";
import React from "react";
const SignIn = () => {
const {
register,
handleSubmit,
formState: {errors, isSubmitting},
} = useForm<SignInFormData>({
defaultValues: {
email: '',
password: '',
},
mode: 'onBlur'
});
const onSubmit = async(data: SignInFormData) => {
try{
console.log(data)
} catch(e){
console.log(e);
}
}
return (
<>
<h1 className="form-title">Sign In</h1>
<form onSubmit={handleSubmit(onSubmit)} className="space-y-5">
<InputField
name="email"
label="Email"
placeholder="Your email"
register={register}
error={errors.email}
validation={{required: 'Email is required', pattern: /^\w+@\w+$/, message: 'Email is required' }}
/>
<InputField
name="password"
label="Password"
placeholder="Enter password"
type="password"
register={register}
error={errors.password}
validation={{required: 'Password is required', minLength: 8}}
/>
<Button type="submit" disabled={isSubmitting} className="yellow-btn w-full mt-5">
{isSubmitting ? 'Signing In...' : 'Sign In'}
</Button>
<FooterLink
text="Don't have an account?"
linkText="Sign up"
href="/sign-up"
/>
</form>
<OpenDevSocietyBranding outerClassName="mt-10 flex justify-center"/>
</>
)
}
export default SignIn