From eb05132008ddfcee11324574f8fe839c42643957 Mon Sep 17 00:00:00 2001 From: Hanzalah Waheed Date: Tue, 12 Aug 2025 00:16:21 +0400 Subject: [PATCH 1/4] fix: always show the response bubble buttons. --- .../src/conversation/ConversationBubble.tsx | 41 +++++++++---------- 1 file changed, 19 insertions(+), 22 deletions(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index 6379eb0a..38d4053f 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -550,20 +550,16 @@ const ConversationBubble = forwardRef< )} {message && (
-
-
- -
-
-
-
- -
-
+ {type !== 'ERROR' && ( + <> +
+ +
+
+ +
+ + )} {type === 'ERROR' && (
{retryBtn}
@@ -573,10 +569,11 @@ const ConversationBubble = forwardRef< <>
Date: Wed, 13 Aug 2025 02:11:47 +0400 Subject: [PATCH 2/4] fix: show both like and dislike buttons --- .../src/conversation/ConversationBubble.tsx | 39 +++++++------------ 1 file changed, 13 insertions(+), 26 deletions(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index 38d4053f..0d708cd6 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -565,16 +565,9 @@ const ConversationBubble = forwardRef<
{retryBtn}
)} - {handleFeedback && ( + {handleFeedback && type !== 'ERROR' && ( <> -
+
{ if (feedback === undefined || feedback === null) { handleFeedback?.('LIKE'); @@ -598,6 +587,10 @@ const ConversationBubble = forwardRef< handleFeedback?.(null); setIsLikeClicked(false); setIsDislikeClicked(false); + } else if (feedback === 'DISLIKE') { + handleFeedback?.('LIKE'); + setIsDislikeClicked(false); + setIsLikeClicked(true); } }} onMouseEnter={() => setIsLikeHovered(true)} @@ -607,13 +600,7 @@ const ConversationBubble = forwardRef<
-
+
{ if (feedback === undefined || feedback === null) { handleFeedback?.('DISLIKE'); @@ -637,6 +620,10 @@ const ConversationBubble = forwardRef< handleFeedback?.(null); setIsLikeClicked(false); setIsDislikeClicked(false); + } else if (feedback === 'LIKE') { + handleFeedback?.('DISLIKE'); + setIsDislikeClicked(true); + setIsLikeClicked(false); } }} onMouseEnter={() => setIsDislikeHovered(true)} From cb9ec69cf686130cd4c084b1f93373842c03be0f Mon Sep 17 00:00:00 2001 From: Hanzalah Waheed Date: Wed, 13 Aug 2025 02:31:25 +0400 Subject: [PATCH 3/4] chore: refactor code to use ternary operator for error type check --- .../src/conversation/ConversationBubble.tsx | 143 +++++++++--------- 1 file changed, 71 insertions(+), 72 deletions(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index 0d708cd6..f1af7862 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -550,7 +550,11 @@ const ConversationBubble = forwardRef< )} {message && (
- {type !== 'ERROR' && ( + {type === 'ERROR' ? ( +
+
{retryBtn}
+
+ ) : ( <>
@@ -558,80 +562,75 @@ const ConversationBubble = forwardRef<
- - )} - {type === 'ERROR' && ( -
-
{retryBtn}
-
- )} - {handleFeedback && type !== 'ERROR' && ( - <> -
-
-
- { - if (feedback === undefined || feedback === null) { - handleFeedback?.('LIKE'); - setIsLikeClicked(true); - setIsDislikeClicked(false); - } else if (feedback === 'LIKE') { - handleFeedback?.(null); - setIsLikeClicked(false); - setIsDislikeClicked(false); - } else if (feedback === 'DISLIKE') { - handleFeedback?.('LIKE'); - setIsDislikeClicked(false); - setIsLikeClicked(true); - } - }} - onMouseEnter={() => setIsLikeHovered(true)} - onMouseLeave={() => setIsLikeHovered(false)} - > + {handleFeedback && ( + <> +
+
+
+ { + if (feedback === undefined || feedback === null) { + handleFeedback?.('LIKE'); + setIsLikeClicked(true); + setIsDislikeClicked(false); + } else if (feedback === 'LIKE') { + handleFeedback?.(null); + setIsLikeClicked(false); + setIsDislikeClicked(false); + } else if (feedback === 'DISLIKE') { + handleFeedback?.('LIKE'); + setIsDislikeClicked(false); + setIsLikeClicked(true); + } + }} + onMouseEnter={() => setIsLikeHovered(true)} + onMouseLeave={() => setIsLikeHovered(false)} + > +
+
-
-
-
-
-
- { - if (feedback === undefined || feedback === null) { - handleFeedback?.('DISLIKE'); - setIsDislikeClicked(true); - setIsLikeClicked(false); - } else if (feedback === 'DISLIKE') { - handleFeedback?.(null); - setIsLikeClicked(false); - setIsDislikeClicked(false); - } else if (feedback === 'LIKE') { - handleFeedback?.('DISLIKE'); - setIsDislikeClicked(true); - setIsLikeClicked(false); - } - }} - onMouseEnter={() => setIsDislikeHovered(true)} - onMouseLeave={() => setIsDislikeHovered(false)} - > +
+
+
+ { + if (feedback === undefined || feedback === null) { + handleFeedback?.('DISLIKE'); + setIsDislikeClicked(true); + setIsLikeClicked(false); + } else if (feedback === 'DISLIKE') { + handleFeedback?.(null); + setIsLikeClicked(false); + setIsDislikeClicked(false); + } else if (feedback === 'LIKE') { + handleFeedback?.('DISLIKE'); + setIsDislikeClicked(true); + setIsLikeClicked(false); + } + }} + onMouseEnter={() => setIsDislikeHovered(true)} + onMouseLeave={() => setIsDislikeHovered(false)} + > +
+
-
-
+ + )} )}
From 6bb0cd535a035e5fce39c63743729b90e43e163d Mon Sep 17 00:00:00 2001 From: Hanzalah Waheed Date: Wed, 13 Aug 2025 02:36:58 +0400 Subject: [PATCH 4/4] fix: rm redundant states. track feedback state w prop var --- .../src/conversation/ConversationBubble.tsx | 31 +++++-------------- 1 file changed, 7 insertions(+), 24 deletions(-) diff --git a/frontend/src/conversation/ConversationBubble.tsx b/frontend/src/conversation/ConversationBubble.tsx index f1af7862..3be40df7 100644 --- a/frontend/src/conversation/ConversationBubble.tsx +++ b/frontend/src/conversation/ConversationBubble.tsx @@ -92,8 +92,7 @@ const ConversationBubble = forwardRef< const [editInputBox, setEditInputBox] = useState(''); const messageRef = useRef(null); const [shouldShowToggle, setShouldShowToggle] = useState(false); - const [isLikeClicked, setIsLikeClicked] = useState(false); - const [isDislikeClicked, setIsDislikeClicked] = useState(false); + const [activeTooltip, setActiveTooltip] = useState(null); const [isSidebarOpen, setIsSidebarOpen] = useState(false); const editableQueryRef = useRef(null); @@ -574,20 +573,12 @@ const ConversationBubble = forwardRef< }`} > { - if (feedback === undefined || feedback === null) { - handleFeedback?.('LIKE'); - setIsLikeClicked(true); - setIsDislikeClicked(false); - } else if (feedback === 'LIKE') { + if (feedback === 'LIKE') { handleFeedback?.(null); - setIsLikeClicked(false); - setIsDislikeClicked(false); - } else if (feedback === 'DISLIKE') { + } else { handleFeedback?.('LIKE'); - setIsDislikeClicked(false); - setIsLikeClicked(true); } }} onMouseEnter={() => setIsLikeHovered(true)} @@ -607,20 +598,12 @@ const ConversationBubble = forwardRef< }`} > { - if (feedback === undefined || feedback === null) { - handleFeedback?.('DISLIKE'); - setIsDislikeClicked(true); - setIsLikeClicked(false); - } else if (feedback === 'DISLIKE') { + if (feedback === 'DISLIKE') { handleFeedback?.(null); - setIsLikeClicked(false); - setIsDislikeClicked(false); - } else if (feedback === 'LIKE') { + } else { handleFeedback?.('DISLIKE'); - setIsDislikeClicked(true); - setIsLikeClicked(false); } }} onMouseEnter={() => setIsDislikeHovered(true)}