Skip to content

Commit 248a56e

Browse files
committed
Fix: 비밀번호 재설정 과정 이메일 전달 로직 및 UI 수정 #4
1 parent 77be1c1 commit 248a56e

3 files changed

Lines changed: 30 additions & 26 deletions

File tree

src/app/auth/signin/page.jsx

Lines changed: 12 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -28,12 +28,16 @@ export default function Page() {
2828
const [errors, setErrors] = useState([]);
2929
const [isRendering, setIsRendering] = useState(0);
3030
const [loading, setLoading] = useState(false);
31+
const [verifiedEmail, setVerifiedEmail] = useState('');
3132

3233
const handleBackToLogin = () => setIsRendering(0);
3334
const handleFindIdClick = () => setIsRendering(1);
3435
const handleResetPasswordClick = () => setIsRendering(2);
3536
const handleBackToResetRequest = () => setIsRendering(2);
36-
const handleResetPasswordNext = () => setIsRendering(3);
37+
const handleResetPasswordNext = (email) => {
38+
setVerifiedEmail(email);
39+
setIsRendering(3);
40+
};
3741

3842
const validatePassword = (password) => {
3943
const newErrors = [];
@@ -59,13 +63,13 @@ export default function Page() {
5963
setLoading(true);
6064
const res = await login(email, password);
6165
const { exists, access_token } = res.data.data;
62-
66+
6367
if (!exists) {
6468
alert('아이디 혹은 비밀번호가 올바르지 않습니다.');
6569
setLoading(false);
6670
return;
6771
}
68-
72+
6973
setAccessToken(access_token);
7074
router.push('/main');
7175
} catch (error) {
@@ -77,7 +81,7 @@ export default function Page() {
7781
};
7882

7983
return (
80-
<>
84+
<>
8185
<Loader isLoading={loading} />
8286
<Image src={loginBg} alt='loginBg' fill className='absolute top-0 left-0 -z-10 object-cover opacity-70 blur-sm' />
8387
<div className='flex justify-center items-center flex-1 relative'>
@@ -120,9 +124,9 @@ export default function Page() {
120124
: `${isRendering === 3 ? '-translate-x-full' : 'translate-x-full'} opacity-0`
121125
} flex justify-center items-center`}
122126
>
123-
<AuthResetRequest
124-
handleNextStep={handleResetPasswordNext}
125-
handleBackToLogin={handleBackToLogin}
127+
<AuthResetRequest
128+
handleNextStep={handleResetPasswordNext}
129+
handleBackToLogin={handleBackToLogin}
126130
setLoading={setLoading}
127131
/>
128132
</div>
@@ -135,6 +139,7 @@ export default function Page() {
135139
} flex justify-center items-center`}
136140
>
137141
<AuthResetPassword
142+
email={verifiedEmail}
138143
handleBackToLogin={handleBackToLogin}
139144
handleBackToResetRequest={handleBackToResetRequest}
140145
setLoading={setLoading}

src/components/auth/screen/AuthResetPassword.jsx

Lines changed: 11 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -6,8 +6,7 @@ import axios from 'axios';
66

77
import TransparentInput from '@/components/ui/input/TransparentInput';
88

9-
export default function AuthResetPassword({ handleBackToLogin, handleBackToResetRequest, setLoading }) {
10-
const [email, setEmail] = useState('');
9+
export default function AuthResetPassword({ email, handleBackToLogin, handleBackToResetRequest, setLoading }) {
1110
const [newPassword, setNewPassword] = useState('');
1211
const [verifyNewPassword, setVerifyNewPassword] = useState('');
1312
const API_AUTH_URL = process.env.NEXT_PUBLIC_BASE_API_URL + '/auth';
@@ -44,34 +43,34 @@ export default function AuthResetPassword({ handleBackToLogin, handleBackToReset
4443
name='email'
4544
value={email}
4645
autoComplete={false}
47-
onChange={(e) => setEmail(e.target.value)}
46+
isDisabled={true}
4847
className='!mt-[40px]'
4948
label='이메일'
5049
placeholder='이메일을 입력해주세요'
5150
/>
52-
<TransparentInput
51+
<TransparentInput
5352
type='password'
5453
name='name'
5554
value={newPassword}
5655
autoComplete={false}
5756
onChange={(e) => setNewPassword(e.target.value)}
58-
className='!mt-[40px]'
59-
label='새 비밀번호'
60-
placeholder='새 비밀번호를 입력해주세요'
57+
className='!mt-[40px]'
58+
label='새 비밀번호'
59+
placeholder='새 비밀번호를 입력해주세요'
6160
/>
62-
<TransparentInput
61+
<TransparentInput
6362
type='password'
6463
name='name'
6564
value={verifyNewPassword}
6665
autoComplete={false}
6766
onChange={(e) => setVerifyNewPassword(e.target.value)}
6867
className='!mt-[40px]'
69-
label='새 비밀번호 확인'
68+
label='새 비밀번호 확인'
7069
placeholder='새 비밀번호를 확인'
7170
/>
72-
<Button
73-
color='primary'
74-
onPress={handleNewPassword}
71+
<Button
72+
color='primary'
73+
onPress={handleNewPassword}
7574
className='!mt-[20px] h-[48px] mobile:h-[44px] w-full rounded-full !bg-[#EA4336]'
7675
>
7776
비밀번호 변경

src/components/auth/screen/AuthResetRequest.jsx

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -84,25 +84,25 @@ export default function AuthResetRequest({ handleNextStep, handleBackToLogin, se
8484
isDisabled={!isNextDisabled}
8585
/>
8686

87-
<Button
88-
onPress={handleSendOtp}
87+
<Button
88+
onPress={handleSendOtp}
8989
isDisabled={!isNextDisabled}
90-
color='default'
90+
color='default'
9191
className='!mt-[20px] h-[40px] mobile:h-[44px] w-full rounded-full !bg-[#DCDCDC]'
9292
>
9393
{isOtpDisabled ? '인증번호 보내기' : '인증번호 재전송'}
9494
</Button>
9595

96-
<OtpInput
97-
label='인증번호'
98-
setOtp={setOtp}
96+
<OtpInput
97+
label='인증번호'
98+
setOtp={setOtp}
9999
isDisabled={isOtpDisabled}
100100
isOtpVerified={!isNextDisabled}
101101
onSubmitOtp={handleVerifyOtp}
102102
/>
103103

104104
<Button
105-
onPress={handleNextStep}
105+
onPress={() => handleNextStep(email)}
106106
isDisabled={isNextDisabled}
107107
color='primary'
108108
className='!mt-[20px] h-[48px] mobile:h-[44px] w-full rounded-full !bg-[#EA4336]'

0 commit comments

Comments
 (0)