From 008a91bff00119353416453e7bdd692838bce16e Mon Sep 17 00:00:00 2001 From: Weves Date: Mon, 27 May 2024 17:29:16 -0700 Subject: [PATCH] Partial fix for links not working --- web/src/app/chat/ChatPage.tsx | 180 +++++++++++++------------- web/src/app/chat/message/Messages.tsx | 32 +++-- 2 files changed, 112 insertions(+), 100 deletions(-) diff --git a/web/src/app/chat/ChatPage.tsx b/web/src/app/chat/ChatPage.tsx index 66da8ba7879d..bba5e841e5cb 100644 --- a/web/src/app/chat/ChatPage.tsx +++ b/web/src/app/chat/ChatPage.tsx @@ -1020,103 +1020,99 @@ export function ChatPage({ const previousMessage = i !== 0 ? messageHistory[i - 1] : null; return ( -
- 0) === true - } - handleFeedback={ - i === messageHistory.length - 1 && - isStreaming - ? undefined - : (feedbackType) => - setCurrentFeedback([ - feedbackType, - message.messageId as number, - ]) - } - handleSearchQueryEdit={ - i === messageHistory.length - 1 && - !isStreaming - ? (newQuery) => { - if (!previousMessage) { - setPopup({ - type: "error", - message: - "Cannot edit query of first message - please refresh the page and try again.", - }); - return; - } - - if ( - previousMessage.messageId === null - ) { - setPopup({ - type: "error", - message: - "Cannot edit query of a pending message - please wait a few seconds and try again.", - }); - return; - } - onSubmit({ - messageIdToResend: - previousMessage.messageId, - queryOverride: newQuery, + 0) === true + } + handleFeedback={ + i === messageHistory.length - 1 && isStreaming + ? undefined + : (feedbackType) => + setCurrentFeedback([ + feedbackType, + message.messageId as number, + ]) + } + handleSearchQueryEdit={ + i === messageHistory.length - 1 && + !isStreaming + ? (newQuery) => { + if (!previousMessage) { + setPopup({ + type: "error", + message: + "Cannot edit query of first message - please refresh the page and try again.", }); + return; } - : undefined - } - isCurrentlyShowingRetrieved={ - isShowingRetrieved - } - handleShowRetrieved={(messageNumber) => { - if (isShowingRetrieved) { - setSelectedMessageForDocDisplay(null); - } else { - if (messageNumber !== null) { - setSelectedMessageForDocDisplay( - messageNumber - ); - } else { - setSelectedMessageForDocDisplay(-1); + + if ( + previousMessage.messageId === null + ) { + setPopup({ + type: "error", + message: + "Cannot edit query of a pending message - please wait a few seconds and try again.", + }); + return; + } + onSubmit({ + messageIdToResend: + previousMessage.messageId, + queryOverride: newQuery, + }); } - } - }} - handleForceSearch={() => { - if ( - previousMessage && - previousMessage.messageId - ) { - onSubmit({ - messageIdToResend: - previousMessage.messageId, - forceSearch: true, - }); + : undefined + } + isCurrentlyShowingRetrieved={isShowingRetrieved} + handleShowRetrieved={(messageNumber) => { + if (isShowingRetrieved) { + setSelectedMessageForDocDisplay(null); + } else { + if (messageNumber !== null) { + setSelectedMessageForDocDisplay( + messageNumber + ); } else { - setPopup({ - type: "error", - message: - "Failed to force search - please refresh the page and try again.", - }); + setSelectedMessageForDocDisplay(-1); } - }} - retrievalDisabled={retrievalDisabled} - /> -
+ } + }} + handleForceSearch={() => { + if ( + previousMessage && + previousMessage.messageId + ) { + onSubmit({ + messageIdToResend: + previousMessage.messageId, + forceSearch: true, + }); + } else { + setPopup({ + type: "error", + message: + "Failed to force search - please refresh the page and try again.", + }); + } + }} + retrievalDisabled={retrievalDisabled} + /> ); } else { return ( diff --git a/web/src/app/chat/message/Messages.tsx b/web/src/app/chat/message/Messages.tsx index 8a2d461c4a49..1002f98f8797 100644 --- a/web/src/app/chat/message/Messages.tsx +++ b/web/src/app/chat/message/Messages.tsx @@ -113,6 +113,7 @@ export const AIMessage = ({ if (!isReady) { return
; } + console.log(content); if (!isComplete) { const trimIncompleteCodeSection = ( @@ -223,14 +224,29 @@ export const AIMessage = ({ key={messageId} className="prose max-w-full" components={{ - a: ({ node, ...props }) => ( - - ), + a: (props) => { + const { node, ...rest } = props; + // for some reason tags cause the onClick to not apply + // and the links are unclickable + // TODO: fix the fact that you have to double click to follow link + // for the first link + return ( + + rest.href + ? window.open(rest.href, "_blank") + : undefined + } + className="cursor-pointer text-link hover:text-link-hover" + // href={rest.href} + // target="_blank" + // rel="noopener noreferrer" + > + {rest.children} + + ); + }, code: (props) => ( ),