gseps-front/src/app/login/components/Login.tsx

73 lines
2.6 KiB
TypeScript
Raw Normal View History

2023-09-06 05:00:01 +00:00
'use client';
import { Button, TextInput } from '@sdt/sdt-ui-kit';
import Link from 'next/link';
import useLogin from '../hooks/useLogin';
import { emailRegex, passwordRegex } from '@/utils/reg';
2023-08-23 08:12:52 +00:00
interface LoginPropsType {}
function Login({}: LoginPropsType) {
const {
hookForm: { handleSubmit, register, formState },
} = useLogin();
return (
<div className="flex justify-center items-center w-full h-screen bg-cover bg-center">
<div className="w-[37.5rem] shadow-md border rounded-[16px] px-10 sm:px-14 lg:px-5 py-7 sm:py-9 flex flex-col justify-center">
<form onSubmit={handleSubmit((data) => console.log(data))}>
<div className="mt-5 flex flex-col">
<TextInput
2023-09-06 05:00:01 +00:00
{...register('email', {
required: '이메일을 입력하세요.',
2023-08-23 08:12:52 +00:00
pattern: {
value: emailRegex,
2023-09-06 05:00:01 +00:00
message: '올바른 이메일을 입력하세요.',
2023-08-23 08:12:52 +00:00
},
})}
error={!!formState.errors.email}
2023-09-06 05:00:01 +00:00
message={(formState.errors.email?.message as string) ?? ''}
2023-08-23 08:12:52 +00:00
maxLength={40}
type="text"
className={`rounded-t-[6px] text-[20px] w-full`}
placeholder="이메일 주소"
/>
</div>
<div className="flex flex-col">
<TextInput
2023-09-06 05:00:01 +00:00
{...register('password', {
required: '비밀번호를 다시 입력하세요.',
2023-08-23 08:12:52 +00:00
pattern: {
value: passwordRegex,
message:
2023-09-06 05:00:01 +00:00
'8~16자 영문 대 소문자, 숫자, 특수문자를 사용하세요.',
2023-08-23 08:12:52 +00:00
},
})}
error={!!formState.errors.password?.message}
2023-09-06 05:00:01 +00:00
message={(formState.errors.password?.message as string) ?? ''}
2023-08-23 08:12:52 +00:00
maxLength={16}
type="password"
className={`rounded-b-[6px] text-[20px] w-full border-t-none`}
placeholder="비밀번호"
/>
</div>
<div className="flex justify-center items-center">
<Button
type="submit"
className={`mt-8 text-[20px] font-semibold w-full bg-main`}
backgroundColor="bg-teal-500"
>
</Button>
</div>
</form>
<div className="w-full mt-2 flex justify-center">
<span className="mr-3 text-[#9e9e9e]"> ?</span>
2023-09-06 05:00:01 +00:00
<Link href={'/reset-password'}> </Link>
2023-08-23 08:12:52 +00:00
</div>
</div>
</div>
);
}
export default Login;