issue # 로그인 화면 구현 중

This commit is contained in:
2025-11-10 23:33:35 +00:00
parent a51566ffae
commit c7ff6f8d13
2 changed files with 23 additions and 4 deletions

View File

@@ -3,6 +3,7 @@ import * as z from 'zod';
export const LoginSchema = z.object({ export const LoginSchema = z.object({
email: z email: z
.email() .email()
.min(1, "이메일을 입력해주십시오.")
, password: z , password: z
.string() .string()
.min(8, "비밀번호는 8-12 자리여야 합니다.") .min(8, "비밀번호는 8-12 자리여야 합니다.")

View File

@@ -1,9 +1,12 @@
import { Card, CardContent, CardHeader } from '@/components/ui/card'; import { Card, CardContent, CardHeader, CardFooter } from '@/components/ui/card';
import { LoginSchema } from '@/data/form'; import { LoginSchema } from '@/data/form';
import { Field, FieldError, FieldGroup, FieldLabel, FieldLegend } from '@/components/ui/field';
import { Button } from '@/components/ui/button';
import { Input } from '@/components/ui/input';
import { zodResolver } from '@hookform/resolvers/zod'; import { zodResolver } from '@hookform/resolvers/zod';
import { useState } from 'react'; import { useState } from 'react';
import { useForm } from 'react-hook-form'; import { Controller, useForm } from 'react-hook-form';
import z from 'zod'; import * as z from 'zod';
export default function LoginPage() { export default function LoginPage() {
@@ -23,7 +26,22 @@ export default function LoginPage() {
</CardHeader> </CardHeader>
<CardContent> <CardContent>
<form id="form-login"> <form id="form-login">
<Controller
name="email"
control={loginForm.control}
render={({ field, fieldState }) => (
<Field data-invalid={fieldState.invalid}>
<FieldLabel htmlFor="form-login-email"></FieldLabel>
<Input
{...field}
id="form-login-email"
aria-invalid={fieldState.invalid}
/>
<FieldError errors={[fieldState.error]} />
</Field>
)}
>
</Controller>
</form> </form>
</CardContent> </CardContent>
</Card> </Card>