Skip to content

Commit e9088d1

Browse files
authored
Merge pull request #74 from ASAP-Lettering/fix/#72
[Fix] Tooltip, Input, 회원탈퇴 등 관련 QA 오류 수정
2 parents 47e4ef2 + 317c423 commit e9088d1

5 files changed

Lines changed: 76 additions & 34 deletions

File tree

src/app/layout.tsx

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -26,11 +26,14 @@ export default function RootLayout({
2626
return (
2727
<html>
2828
<head>
29+
<script
30+
defer
31+
src="https://developers.kakao.com/sdk/js/kakao.min.js"
32+
></script>
2933
<meta
3034
name="viewport"
31-
content="width=device-width, initial-scale=1, maximumScale=1, user-scalable=no"
35+
content="width=device-width, initial-scale=1, maximumScale=1, user-scalable=no"
3236
/>
33-
<script defer src="https://developers.kakao.com/sdk/js/kakao.min.js" />
3437
</head>
3538
<body>
3639
<script

src/app/planet/page.tsx

Lines changed: 12 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ const PlanetPage = () => {
8888
setCountLetter(response.data.letterCount);
8989
setCurrentOrbits(response.data.content);
9090
setIsLoading(false);
91-
if (response.data.count < 3 && getInitUserToast() !== "true") {
91+
if (response.data.letterCount < 3 && getInitUserToast() !== "true") {
9292
setShowTooltip(true);
9393
setInitUserToast();
9494
}
@@ -152,6 +152,9 @@ const PlanetPage = () => {
152152
console.error("메인 ID 조회 실패:", error);
153153
setSpaceInfo(null);
154154
setIsLoading(false);
155+
156+
/* 메인 ID 없을 경우 회원 탈퇴로 간주 */
157+
// router.push("/login");
155158
}
156159
};
157160

@@ -507,14 +510,6 @@ const PlanetPage = () => {
507510
setChange={setChange}
508511
/>
509512
</SliderWrapper>
510-
{showTooltip && (
511-
<Tooltip
512-
message="궤도에 있는 편지들을 끌어 당겨 행성으로 옮길 수 있어요"
513-
close={true}
514-
bottom="225px"
515-
onClose={() => setShowTooltip(false)}
516-
/>
517-
)}
518513
<PageWrapper>
519514
<Pagination
520515
currentPage={currentPage}
@@ -532,6 +527,14 @@ const PlanetPage = () => {
532527
onOrbitTouch={handleTagTouch}
533528
/>
534529
</BottomWrapper>
530+
{showTooltip && (
531+
<Tooltip
532+
message="궤도에 있는 편지들을 끌어 당겨 행성으로 옮길 수 있어요"
533+
close={true}
534+
bottom="230px"
535+
onClose={() => setShowTooltip(false)}
536+
/>
537+
)}
535538
</Container>
536539
</>
537540
)}

src/app/send/letter/page.tsx

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -149,6 +149,10 @@ const SendLetterPage = () => {
149149
.map((file) => URL.createObjectURL(file)),
150150
];
151151
setImages(newImages);
152+
setLetterState((prevState) => ({
153+
...prevState,
154+
images: newImages,
155+
}));
152156
return;
153157
}
154158
}
@@ -171,6 +175,10 @@ const SendLetterPage = () => {
171175
}
172176
}
173177
setImages((prevImages) => [...prevImages, ...imageUrls]);
178+
setLetterState((prevState) => ({
179+
...prevState,
180+
images: [...(prevState.images || []), ...imageUrls],
181+
}));
174182
}
175183
};
176184

src/app/verify/letter/page.tsx

Lines changed: 51 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,7 @@ import {
55
saveVerifyedLetter,
66
verifyLetter,
77
} from "@/api/letter/letter";
8+
import { getMainId } from "@/api/planet/space/space";
89
import Button from "@/components/common/Button";
910
import Loader, { LoaderContainer } from "@/components/common/Loader";
1011
import Letter from "@/components/letter/Letter";
@@ -50,7 +51,7 @@ const VerifyLetter = () => {
5051
} catch (error) {
5152
//검증 완료된 사용자이지만 모종의 이유로 데이터 받아오는 것이 실패한 경우
5253
console.error("편지 조회 실패:", error);
53-
router.push(`/error/network?url=${url}`);
54+
router.push(`/error/network`);
5455
}
5556
};
5657

@@ -66,27 +67,55 @@ const VerifyLetter = () => {
6667
};
6768

6869
useEffect(() => {
69-
//accessToken이 없는 상황이라면 로그인으로
70-
if (!accessToken) {
71-
router.push(`/login?url=${url}`);
72-
return;
73-
}
74-
//letterCode가 있다면 검증 진행
75-
if (url) {
76-
verifyLetter(url)
77-
.then((res) => {
78-
if (res.data.letterId) {
79-
//검증 성공하면 letterData를 받아온다
80-
setletterId(res.data.letterId);
81-
fetchLetterData(res.data.letterId);
82-
}
83-
})
84-
.catch((error) => {
85-
//검증 실패시 조회할 수 없는 편지 에러 페이지로 이동
86-
console.log(error);
87-
router.push("/error/letter");
88-
});
89-
}
70+
const checkMainIdAndVerify = async () => {
71+
try {
72+
// 메인 ID 조회를 통한 회원 검증 (탈퇴회원 포함)
73+
await getMainId();
74+
75+
// letterCode가 있을 경우 추가 검증 진행
76+
if (url) {
77+
verifyLetter(url)
78+
.then((res) => {
79+
if (res.data.letterId) {
80+
setletterId(res.data.letterId);
81+
fetchLetterData(res.data.letterId);
82+
}
83+
})
84+
.catch((error) => {
85+
console.error("검증 실패:", error);
86+
router.push(`/error/letter`);
87+
});
88+
}
89+
} catch (error) {
90+
// 메인 ID 조회 실패 시 로그인 페이지로 이동
91+
console.error("유효한 회원이 아닌 것으로 판단:", error);
92+
router.push(url ? `/login?url=${url}` : "/login");
93+
}
94+
};
95+
96+
checkMainIdAndVerify();
97+
// //accessToken이 없는 상황이라면 로그인으로
98+
// if (!accessToken) {
99+
// router.push(url ? `/login?url=${url}` : `/login`);
100+
// return;
101+
// }
102+
103+
// //letterCode가 있다면 검증 진행
104+
// if (url) {
105+
// verifyLetter(url)
106+
// .then((res) => {
107+
// if (res.data.letterId) {
108+
// //검증 성공하면 letterData를 받아온다
109+
// setletterId(res.data.letterId);
110+
// fetchLetterData(res.data.letterId);
111+
// }
112+
// })
113+
// .catch((error) => {
114+
// //검증 실패시 조회할 수 없는 편지 에러 페이지로 이동
115+
// console.log(error);
116+
// router.push(url ? `/error/letter?url=${url}` : `/error/letter`);
117+
// });
118+
// }
90119

91120
if (letterData === null) {
92121
//LetterData 받아오는 로직

src/components/common/Tooltip.tsx

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -73,7 +73,6 @@ const TooltipContainer = styled.div<{
7373
$padding?: string;
7474
}>`
7575
width: calc(100% - 50px);
76-
height: 46px;
7776
padding: ${({ $padding }) => ($padding ? $padding : "8px 14px")};
7877
display: flex;
7978
justify-content: space-between;

0 commit comments

Comments
 (0)