|
1 | | -import React, { useState, useEffect } from 'react'; |
| 1 | +import React, { useState, useEffect, useMemo } from 'react'; |
2 | 2 | import styles from './SignUp.module.css'; |
3 | 3 | import BottomButton from '../../components/BottomButton/BottomButton'; |
4 | 4 | import { api } from '../../api/api'; |
@@ -129,14 +129,16 @@ export default function SignUp() { |
129 | 129 |
|
130 | 130 | const handlePasswordChange = (e) => { |
131 | 131 | const value = e.target.value.replace(/(\s*)/g, ''); |
132 | | - setPassword(value); |
133 | | - |
134 | 132 | const check = /[`~!@#$%^&*|\\\'\";:\/?]/gi; |
135 | 133 |
|
136 | 134 | setVerification((prev) => ({ |
137 | 135 | ...prev, |
138 | 136 | passwordConstraints: check.test(value) && value.length >= 8, |
139 | 137 | })); |
| 138 | + setPassword(value); |
| 139 | + |
| 140 | + console.log(value) |
| 141 | + console.log(check.test(value) && value.length >= 8) |
140 | 142 | }; |
141 | 143 |
|
142 | 144 | const handlePasswordCheck = (e) => { |
@@ -188,17 +190,15 @@ export default function SignUp() { |
188 | 190 | : styles.invalidMessageVisible; |
189 | 191 | }; |
190 | 192 |
|
| 193 | + const resolvedPasswordInvalidStyle = useMemo(() => { |
| 194 | + return resolveInvalidMessageStyle(verification.passwordConstraints, password); |
| 195 | + }, [verification.passwordConstraints, password]); |
| 196 | + |
191 | 197 | return ( |
192 | 198 | <> |
193 | 199 | <div className={styles.signUpContainer}> |
194 | 200 | {isAlertShow && ( |
195 | | - <div className={styles.alertContainer}> |
196 | | - <Alert |
197 | | - buttonTitle="확인" |
198 | | - message={alertMessage} |
199 | | - onClick={handleAlertButtonClick} |
200 | | - ></Alert> |
201 | | - </div> |
| 201 | + <Alert buttonTitle="확인" message={alertMessage} onClick={handleAlertButtonClick}></Alert> |
202 | 202 | )} |
203 | 203 | <div className={styles.signUpForm}> |
204 | 204 | <div> |
@@ -257,7 +257,7 @@ export default function SignUp() { |
257 | 257 | /> |
258 | 258 | <br /> |
259 | 259 | <span |
260 | | - className={resolveInvalidMessageStyle(verification.passwordConstraints, password)} |
| 260 | + className={resolvedPasswordInvalidStyle} |
261 | 261 | > |
262 | 262 | 비밀번호는 특수부호를 포함 8자이상 작성해주세요 |
263 | 263 | </span> |
|
0 commit comments