From 093871db5ccab31ac0991eb4a230c04eaf49286e Mon Sep 17 00:00:00 2001 From: kdhye1119 Date: Sat, 30 May 2026 21:32:03 +0900 Subject: [PATCH 1/2] =?UTF-8?q?[feat]=ED=95=B4=EA=B2=B0=EB=90=A8=20->=20?= =?UTF-8?q?=EB=AF=B8=ED=95=B4=EA=B2=B0=20api=20=EC=97=B0=EA=B2=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- frontend/src/pages/qna/QnADetailPage.js | 39 ++++++-------- .../src/pages/qna/QnADetailPage.module.css | 54 +++++++++++++++++++ frontend/src/pages/qna/QnAListPage.js | 5 +- frontend/src/pages/qna/QnAListPage.module.css | 9 ++++ 4 files changed, 81 insertions(+), 26 deletions(-) diff --git a/frontend/src/pages/qna/QnADetailPage.js b/frontend/src/pages/qna/QnADetailPage.js index c25d29f..1421b9d 100644 --- a/frontend/src/pages/qna/QnADetailPage.js +++ b/frontend/src/pages/qna/QnADetailPage.js @@ -87,7 +87,6 @@ function QnADetailPage() { } }; - useEffect(() => { const fetchQuestion = async () => { try { @@ -138,7 +137,7 @@ function QnADetailPage() { useEffect(() => { const handleClickOutside = () => { setShowMenu(false); - setCommentMenuId(null); // ← 추가 + setCommentMenuId(null); }; if (showMenu || commentMenuId) document.addEventListener('click', handleClickOutside); return () => document.removeEventListener('click', handleClickOutside); @@ -260,13 +259,8 @@ function QnADetailPage() { if (!res.ok) throw new Error(); const json = await res.json(); if (json.isSuccess) { - if (isStaff) { - await authFetch(`/api/questions/${questionId}/status`, { method: 'PATCH' }); - setQuestion(prev => ({ ...prev, isResolved: true })); - } else if (question.isResolved) { - await authFetch(`/api/questions/${questionId}/status`, { method: 'PATCH' }); - setQuestion(prev => ({ ...prev, isResolved: false })); - } + // isResolved를 응답값으로 직접 반영 + setQuestion(prev => ({ ...prev, isResolved: json.result.isResolved })); const newComment = { commentId: json.result.commentId, @@ -274,6 +268,7 @@ function QnADetailPage() { content: json.result.content, createdAt: json.result.createdAt, imageUrl: imagePreview, + isMine: true, }; setQuestion(prev => ({ ...prev, @@ -308,7 +303,7 @@ function QnADetailPage() { {formatDate(question.createdAt)} {(isMyQuestion || isStaff) && ( -
+
@@ -345,19 +340,16 @@ function QnADetailPage() { {/* 질문 내용 */}
- Q. + Q. {isEditing ? ( -
+