|
1 | 1 | import { useRouter } from 'next/router'; |
2 | 2 | import { useState } from 'react'; |
3 | | - |
4 | 3 | import Button from '@/components/Button'; |
5 | 4 | import InputField from '@/components/Input'; |
| 5 | +import Link from 'next/link'; |
6 | 6 |
|
7 | 7 | function SignUp(): React.ReactElement { |
8 | 8 | const [email, setEmail] = useState(''); |
@@ -68,61 +68,63 @@ function SignUp(): React.ReactElement { |
68 | 68 | return ( |
69 | 69 | <div className="flex min-h-screen items-center justify-center"> |
70 | 70 | <form onSubmit={handleSubmit}> |
71 | | - <h1 className="mb-[64px] text-center text-24sb text-gray-500 mo:mb-[32px] ta:mb-[48px]"> |
72 | | - 회원가입 |
73 | | - </h1> |
74 | | - <InputField |
75 | | - label="이름" |
76 | | - type="name" |
77 | | - value={name} |
78 | | - onChange={handleNameChange} |
79 | | - placeholder="이름을 입력해 주세요" |
80 | | - onValidation={(isValid) => handleValidation('name', isValid)} |
81 | | - /> |
82 | | - |
83 | | - <InputField |
84 | | - label="이메일" |
85 | | - type="email" |
86 | | - value={email} |
87 | | - onChange={handleEmailChange} |
88 | | - placeholder="이메일을 입력해 주세요" |
89 | | - onValidation={(isValid) => handleValidation('email', isValid)} |
90 | | - /> |
91 | | - |
92 | | - <InputField |
93 | | - label="비밀번호" |
94 | | - type="password" |
95 | | - value={password} |
96 | | - onChange={handlePasswordChange} |
97 | | - placeholder="비밀번호를 입력해 주세요" |
98 | | - onValidation={(isValid) => handleValidation('password', isValid)} |
99 | | - /> |
100 | | - |
101 | | - <InputField |
102 | | - label="비밀번호 확인" |
103 | | - type="passwordConfirm" |
104 | | - value={passwordConfirm} |
105 | | - onChange={handlePasswordConfirmChange} |
106 | | - placeholder="비밀번호를 다시 입력해 주세요" |
107 | | - compareValue={password} |
108 | | - onValidation={(isValid) => |
109 | | - handleValidation('passwordConfirm', isValid) |
110 | | - } |
111 | | - /> |
112 | | - <Button |
113 | | - type="submit" |
114 | | - disabled={!isFormValid} |
115 | | - isLoading={isSubmitting} |
116 | | - variant="primary" |
117 | | - className="mt-[30px] h-[45px] w-[400px] mo:w-[355px]" |
118 | | - > |
119 | | - 가입하기 |
120 | | - </Button> |
121 | | - <div className="mt-[40px] text-center"> |
122 | | - <span className="text-14 text-gray-400">이미 회원이신가요?</span>{' '} |
123 | | - <a href="/login" className="text-14 text-green-300 hover:underline"> |
124 | | - 로그인하기 |
125 | | - </a> |
| 71 | + <div className="flex flex-col items-center gap-[24px]"> |
| 72 | + <h2 className="mb-[40px] text-center text-24sb text-gray-500 mo:mb-[8px] ta:mb-[24px]"> |
| 73 | + 회원가입 |
| 74 | + </h2> |
| 75 | + <InputField |
| 76 | + label="이름" |
| 77 | + type="name" |
| 78 | + value={name} |
| 79 | + onChange={handleNameChange} |
| 80 | + placeholder="이름을 입력해 주세요" |
| 81 | + onValidation={(isValid) => handleValidation('name', isValid)} |
| 82 | + /> |
| 83 | + <InputField |
| 84 | + label="이메일" |
| 85 | + type="email" |
| 86 | + value={email} |
| 87 | + onChange={handleEmailChange} |
| 88 | + placeholder="이메일을 입력해 주세요" |
| 89 | + onValidation={(isValid) => handleValidation('email', isValid)} |
| 90 | + /> |
| 91 | + <InputField |
| 92 | + label="비밀번호" |
| 93 | + type="password" |
| 94 | + value={password} |
| 95 | + onChange={handlePasswordChange} |
| 96 | + placeholder="비밀번호를 입력해 주세요" |
| 97 | + onValidation={(isValid) => handleValidation('password', isValid)} |
| 98 | + /> |
| 99 | + <InputField |
| 100 | + label="비밀번호 확인" |
| 101 | + type="passwordConfirm" |
| 102 | + value={passwordConfirm} |
| 103 | + onChange={handlePasswordConfirmChange} |
| 104 | + placeholder="비밀번호를 다시 입력해 주세요" |
| 105 | + compareValue={password} |
| 106 | + onValidation={(isValid) => |
| 107 | + handleValidation('passwordConfirm', isValid) |
| 108 | + } |
| 109 | + /> |
| 110 | + <Button |
| 111 | + type="submit" |
| 112 | + disabled={!isFormValid} |
| 113 | + isLoading={isSubmitting} |
| 114 | + variant="primary" |
| 115 | + className="mt-[30px] h-[45px] w-[400px] mo:w-[355px]" |
| 116 | + > |
| 117 | + 가입하기 |
| 118 | + </Button> |
| 119 | + <div className="mt-[40px] text-center"> |
| 120 | + <span className="text-14 text-gray-400">이미 회원이신가요?</span>{' '} |
| 121 | + <Link |
| 122 | + href="/login" |
| 123 | + className="text-14 text-green-300 hover:underline" |
| 124 | + > |
| 125 | + 로그인하기 |
| 126 | + </Link> |
| 127 | + </div>{' '} |
126 | 128 | </div> |
127 | 129 | </form> |
128 | 130 | </div> |
|
0 commit comments