Skip to content

Commit 0199618

Browse files
committed
fix: 회원가입 뒤로가기 오류 수정
1 parent ee60494 commit 0199618

File tree

1 file changed

+29
-14
lines changed

1 file changed

+29
-14
lines changed

src/app/signup/page.tsx

Lines changed: 29 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,13 @@ const SignupPage: React.FC = () => {
2626
marketingConsent?: number;
2727
loginType: 'local' | 'social' | 'naver' | 'google' | 'kakao';
2828
}>({
29-
loginType: 'local',
29+
loginType: 'local'
3030
});
3131

3232
const router = useRouter();
3333
const { isLoggedIn } = useAuthStore();
3434

3535
const { setOpen, setModalType } = useModalStore();
36-
3736

3837
useEffect(() => {
3938
if (isLoggedIn) {
@@ -45,14 +44,18 @@ const SignupPage: React.FC = () => {
4544
const searchParams = new URLSearchParams(window.location.search);
4645
const verifyToken = searchParams.get('verify');
4746
const email = searchParams.get('email');
48-
const loginType = searchParams.get('loginType') as 'naver' | 'google' | 'kakao' | null;
47+
const loginType = searchParams.get('loginType') as
48+
| 'naver'
49+
| 'google'
50+
| 'kakao'
51+
| null;
4952

5053
if (verifyToken && email && loginType && !isSocialLogin) {
5154
setIsSocialLogin(true);
5255
setFormData((prev) => ({
5356
...prev,
5457
email,
55-
loginType,
58+
loginType
5659
}));
5760

5861
setCookie('verify_token', verifyToken);
@@ -80,23 +83,22 @@ const SignupPage: React.FC = () => {
8083
const handleSubmit = async () => {
8184
try {
8285
const verifyToken = getCookie('verify_token');
83-
86+
8487
if (!verifyToken) {
8588
throw new Error('Verify token이 없습니다.');
8689
}
87-
90+
8891
const authHeaders = {
8992
cookie: '',
90-
Verify: verifyToken,
93+
Verify: verifyToken
9194
};
92-
95+
9396
const response = await finalSignup(formData, authHeaders);
94-
97+
9598
if (response === '회원가입 완료') {
9699
setModalType('signupComplete');
97100
setOpen(true);
98101
}
99-
100102
} catch (error) {
101103
console.error('서버 요청 오류:', error);
102104
alert('회원가입에 실패했습니다. 다시 시도해주세요.');
@@ -109,9 +111,18 @@ const SignupPage: React.FC = () => {
109111
e.returnValue = '';
110112
};
111113

114+
let hasShownAlert = false; // 추가
115+
112116
const pushStateAndShowAlert = () => {
113-
window.history.pushState(null, '', window.location.href);
114-
alert('페이지를 나가시면 진행 중인 작업이 저장되지 않습니다.');
117+
// alert('페이지를 나가시면 진행 중인 작업이 저장되지 않습니다.');
118+
// window.history.pushState(null, '', window.location.href);
119+
if (!hasShownAlert) {
120+
alert('페이지를 나가시면 진행 중인 작업이 저장되지 않습니다.');
121+
hasShownAlert = true;
122+
} else {
123+
window.removeEventListener('popstate', pushStateAndShowAlert);
124+
window.history.back();
125+
}
115126
};
116127

117128
window.addEventListener('beforeunload', handleBeforeUnload);
@@ -135,7 +146,11 @@ const SignupPage: React.FC = () => {
135146
<Step2 onNext={handleNext} onUpdate={(data) => handleUpdate(data)} />
136147
)}
137148
{currentStep === 3 && (
138-
<Step3 onNext={handleNext} onUpdate={(data) => handleUpdate(data)} email={formData.email || ''} />
149+
<Step3
150+
onNext={handleNext}
151+
onUpdate={(data) => handleUpdate(data)}
152+
email={formData.email || ''}
153+
/>
139154
)}
140155
{currentStep === 4 && (
141156
<Step4 onNext={handleSubmit} onUpdate={(data) => handleUpdate(data)} />
@@ -147,4 +162,4 @@ const SignupPage: React.FC = () => {
147162
);
148163
};
149164

150-
export default SignupPage;
165+
export default SignupPage;

0 commit comments

Comments
 (0)