From 552f307c45986a17280130c0a49dfdb0aa0882a5 Mon Sep 17 00:00:00 2001 From: kimdaae328 Date: Tue, 4 Feb 2025 16:05:48 +0900 Subject: [PATCH] =?UTF-8?q?=EC=A2=8B=EC=95=84=EC=9A=94=20=EC=9E=91?= =?UTF-8?q?=EC=97=85=EC=A4=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- src/components/button/BoardRecommendBtn.vue | 33 ++++++++++--------- src/views/board/BoardView.vue | 36 +++++++++++++++++---- 2 files changed, 47 insertions(+), 22 deletions(-) diff --git a/src/components/button/BoardRecommendBtn.vue b/src/components/button/BoardRecommendBtn.vue index b179da3..cc82b5b 100644 --- a/src/components/button/BoardRecommendBtn.vue +++ b/src/components/button/BoardRecommendBtn.vue @@ -62,27 +62,28 @@ watch(() => props.dislikeCount, (newVal) => { }); const handleLike = () => { - likeClicked.value = !likeClicked.value; - likeCount.value += likeClicked.value ? 1 : -1; + // console.log('adadasd') + // likeClicked.value = !likeClicked.value; + // likeCount.value += likeClicked.value ? 1 : -1; emit('updateReaction', { type: 'like', boardId: props.boardId, commentId: props.commentId }); - if(likeClicked.value === true){ - if(dislikeClicked.value === true) { - dislikeClicked.value = false; - dislikeCount.value += -1 - } - } + // if(likeClicked.value === true){ + // if(dislikeClicked.value === true) { + // dislikeClicked.value = false; + // dislikeCount.value += -1 + // } + // } }; const handleDislike = () => { - dislikeClicked.value = !dislikeClicked.value; - dislikeCount.value += dislikeClicked.value ? 1 : -1; + // dislikeClicked.value = !dislikeClicked.value; + // dislikeCount.value += dislikeClicked.value ? 1 : -1; emit('updateReaction', { type: 'dislike', boardId: props.boardId, commentId: props.commentId }); - if(dislikeClicked.value === true){ - if(likeClicked.value === true) { - likeClicked.value = false; - likeCount.value += -1 - } - } + // if(dislikeClicked.value === true){ + // if(likeClicked.value === true) { + // likeClicked.value = false; + // likeCount.value += -1 + // } + // } }; diff --git a/src/views/board/BoardView.vue b/src/views/board/BoardView.vue index e6aa5cc..8f81baa 100644 --- a/src/views/board/BoardView.vue +++ b/src/views/board/BoardView.vue @@ -100,6 +100,8 @@ const date = ref(''); const views = ref(0); const likes = ref(0); const dislikes = ref(0); +const likeClicked = ref(false); +const dislikeClicked = ref(false); const comments = ref(0); const attachment = ref(false); @@ -120,10 +122,9 @@ const fetchBoardDetails = async () => { const data = response.data.data; // API 응답 데이터 반영 - const boardDetail = data.boardDetail || {}; - // console.log('boardDetail:', boardDetail); + // const boardDetail = data.boardDetail || {}; - console.log('API Response:', response.data); + // console.log('API Response:', response.data); profileName.value = data.author || '익명 사용자'; boardTitle.value = data.title || '제목 없음'; @@ -134,7 +135,6 @@ const fetchBoardDetails = async () => { dislikes.value = data.dislikeCount || 0; attachment.value = data.hasAttachment || null; comments.value = data.commentCount || 0; - console.log(date.value) } catch (error) { alert('게시물 데이터를 불러오는 중 오류가 발생했습니다.'); @@ -144,9 +144,33 @@ const fetchBoardDetails = async () => { // 좋아요, 싫어요 const handleUpdateReaction = async ({ type, boardId, commentId }) => { try { - const cmtId = commentId !== null ? commentId : 0; + //이거 왜 한건지 찾아보자 + const response = await axios.post(`/board/${boardId}/${commentId}/reaction`, { type }); - const response = await axios.post(`/board/${boardId}/${cmtId}/reaction`, { type }); + // console.log('API 응답:', response.data); + // console.log(commentId) + + if (response.data.code === 200) { + if (type === 'like') { + likeClicked.value = !likeClicked.value; + likes.value += likeClicked.value ? 1 : -1; + } else if (type === 'dislike') { + dislikeClicked.value = !dislikeClicked.value; + dislikes.value += dislikeClicked.value ? 1 : -1; + } + } else { + alert('반응 업데이트 실패'); + } + // likes.value = response.data.likeCount; + // dislikes.value = response.data.dislikeCount; + + // if (type === 'like') { + // likeClicked.value = !likeClicked.value; + // console.log('aaaa' ,response.data) + + // } else if (type === 'dislike') { + // console.log('싫어') + // } } catch (error) { alert('반응을 업데이트하는 중 오류 발생'); }