From b61e9b9635ab74a62f37b51f9f5b6c94902037f9 Mon Sep 17 00:00:00 2001 From: Kwon DaeGeun Date: Wed, 24 Dec 2025 01:00:46 +0900 Subject: [PATCH] =?UTF-8?q?fix:=20=EB=82=B4=EA=B2=8C=20=EC=93=B0=EA=B8=B0?= =?UTF-8?q?=20=ED=8E=B8=EC=A7=80=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/pages/letterPage/pages/letter-guide-page.tsx | 9 +++++---- src/pages/letterPage/pages/letter-select-page.tsx | 5 +++-- src/pages/letterPage/pages/letter-write-page.tsx | 12 ++++++++++-- 3 files changed, 18 insertions(+), 8 deletions(-) diff --git a/src/pages/letterPage/pages/letter-guide-page.tsx b/src/pages/letterPage/pages/letter-guide-page.tsx index f18e1b5..fc62709 100644 --- a/src/pages/letterPage/pages/letter-guide-page.tsx +++ b/src/pages/letterPage/pages/letter-guide-page.tsx @@ -16,19 +16,20 @@ export default function LetterGuidePage({ const { shareUri } = useParams(); const location = useLocation(); + const isJoinPage = location.pathname.startsWith("/join/"); + const isFirstTimeJoin = location.pathname === "/join/letter/guide"; + // fetch board info when shareUri is present to get the owner's name + // join 페이지에서는 보드 정보를 가져올 필요 없음 const boardInfoQuery = useQuery({ queryKey: ["boardInfo", shareUri], queryFn: () => getBoardInfo(shareUri ?? ""), - enabled: Boolean(shareUri), + enabled: Boolean(shareUri) && !isJoinPage, }); const computedNickname = boardInfoQuery.data?.data?.nickname ?? (nickname as string); - const isJoinPage = location.pathname.startsWith("/join/"); - const isFirstTimeJoin = location.pathname === "/join/letter/guide"; - const handleSearchClick = () => { if (isJoinPage) { if (isFirstTimeJoin) { diff --git a/src/pages/letterPage/pages/letter-select-page.tsx b/src/pages/letterPage/pages/letter-select-page.tsx index d1e576c..42b6935 100644 --- a/src/pages/letterPage/pages/letter-select-page.tsx +++ b/src/pages/letterPage/pages/letter-select-page.tsx @@ -47,7 +47,8 @@ export default function LetterSelectPage({ useEffect(() => { const fetchBoardInfo = async () => { - if (!shareUri) return; + // join 페이지에서는 보드 정보를 가져올 필요 없음 + if (!shareUri || isJoinPage) return; try { const response = await getBoardInfo(shareUri); setRecipientNickname(response.data.nickname); @@ -57,7 +58,7 @@ export default function LetterSelectPage({ }; fetchBoardInfo(); - }, [shareUri]); + }, [shareUri, isJoinPage]); useEffect(() => { // prefer prop `music` if provided diff --git a/src/pages/letterPage/pages/letter-write-page.tsx b/src/pages/letterPage/pages/letter-write-page.tsx index a96e2ce..0191119 100644 --- a/src/pages/letterPage/pages/letter-write-page.tsx +++ b/src/pages/letterPage/pages/letter-write-page.tsx @@ -97,9 +97,17 @@ export default function LetterWritePage() { const stored = localStorage.getItem(LOCALSTORAGE_KEY); const draft: Partial = stored ? JSON.parse(stored) : {}; draft.sender = authorName; + draft.content = letterContent; // 내게 쓰기 흐름일 때는 자신의 보드 shareUri 사용 - draft.shareUri = shareUri ?? (isJoinPage ? boardShare?.shareUri : draft.shareUri) - draft.shareUri = shareUri ?? draft.shareUri ?? ""; + draft.shareUri = shareUri ?? (isJoinPage ? boardShare?.shareUri : draft.shareUri) ?? ""; + + console.log("메시지 전송 디버그:", { + "URL shareUri": shareUri, + "isJoinPage": isJoinPage, + "boardShare?.shareUri": boardShare?.shareUri, + "draft.shareUri (localStorage)": stored ? JSON.parse(stored).shareUri : undefined, + "최종 draft.shareUri": draft.shareUri, + }); // POST to backend using central message api await postMessage(draft);