mirror of
https://github.com/danswer-ai/danswer.git
synced 2025-09-27 20:38:32 +02:00
Partial fix for links not working
This commit is contained in:
@@ -1020,103 +1020,99 @@ export function ChatPage({
|
|||||||
const previousMessage =
|
const previousMessage =
|
||||||
i !== 0 ? messageHistory[i - 1] : null;
|
i !== 0 ? messageHistory[i - 1] : null;
|
||||||
return (
|
return (
|
||||||
<div key={i}>
|
<AIMessage
|
||||||
<AIMessage
|
key={message.messageId}
|
||||||
messageId={message.messageId}
|
messageId={message.messageId}
|
||||||
content={message.message}
|
content={message.message}
|
||||||
files={message.files}
|
files={message.files}
|
||||||
query={messageHistory[i]?.query || undefined}
|
query={messageHistory[i]?.query || undefined}
|
||||||
personaName={livePersona.name}
|
personaName={livePersona.name}
|
||||||
citedDocuments={getCitedDocumentsFromMessage(
|
citedDocuments={getCitedDocumentsFromMessage(
|
||||||
message
|
message
|
||||||
)}
|
)}
|
||||||
currentTool={currentTool}
|
currentTool={currentTool}
|
||||||
isComplete={
|
isComplete={
|
||||||
i !== messageHistory.length - 1 ||
|
i !== messageHistory.length - 1 ||
|
||||||
!isStreaming
|
!isStreaming
|
||||||
}
|
}
|
||||||
hasDocs={
|
hasDocs={
|
||||||
(message.documents &&
|
(message.documents &&
|
||||||
message.documents.length > 0) === true
|
message.documents.length > 0) === true
|
||||||
}
|
}
|
||||||
handleFeedback={
|
handleFeedback={
|
||||||
i === messageHistory.length - 1 &&
|
i === messageHistory.length - 1 && isStreaming
|
||||||
isStreaming
|
? undefined
|
||||||
? undefined
|
: (feedbackType) =>
|
||||||
: (feedbackType) =>
|
setCurrentFeedback([
|
||||||
setCurrentFeedback([
|
feedbackType,
|
||||||
feedbackType,
|
message.messageId as number,
|
||||||
message.messageId as number,
|
])
|
||||||
])
|
}
|
||||||
}
|
handleSearchQueryEdit={
|
||||||
handleSearchQueryEdit={
|
i === messageHistory.length - 1 &&
|
||||||
i === messageHistory.length - 1 &&
|
!isStreaming
|
||||||
!isStreaming
|
? (newQuery) => {
|
||||||
? (newQuery) => {
|
if (!previousMessage) {
|
||||||
if (!previousMessage) {
|
setPopup({
|
||||||
setPopup({
|
type: "error",
|
||||||
type: "error",
|
message:
|
||||||
message:
|
"Cannot edit query of first message - please refresh the page and try again.",
|
||||||
"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,
|
|
||||||
});
|
});
|
||||||
|
return;
|
||||||
}
|
}
|
||||||
: undefined
|
|
||||||
}
|
if (
|
||||||
isCurrentlyShowingRetrieved={
|
previousMessage.messageId === null
|
||||||
isShowingRetrieved
|
) {
|
||||||
}
|
setPopup({
|
||||||
handleShowRetrieved={(messageNumber) => {
|
type: "error",
|
||||||
if (isShowingRetrieved) {
|
message:
|
||||||
setSelectedMessageForDocDisplay(null);
|
"Cannot edit query of a pending message - please wait a few seconds and try again.",
|
||||||
} else {
|
});
|
||||||
if (messageNumber !== null) {
|
return;
|
||||||
setSelectedMessageForDocDisplay(
|
}
|
||||||
messageNumber
|
onSubmit({
|
||||||
);
|
messageIdToResend:
|
||||||
} else {
|
previousMessage.messageId,
|
||||||
setSelectedMessageForDocDisplay(-1);
|
queryOverride: newQuery,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
: undefined
|
||||||
}}
|
}
|
||||||
handleForceSearch={() => {
|
isCurrentlyShowingRetrieved={isShowingRetrieved}
|
||||||
if (
|
handleShowRetrieved={(messageNumber) => {
|
||||||
previousMessage &&
|
if (isShowingRetrieved) {
|
||||||
previousMessage.messageId
|
setSelectedMessageForDocDisplay(null);
|
||||||
) {
|
} else {
|
||||||
onSubmit({
|
if (messageNumber !== null) {
|
||||||
messageIdToResend:
|
setSelectedMessageForDocDisplay(
|
||||||
previousMessage.messageId,
|
messageNumber
|
||||||
forceSearch: true,
|
);
|
||||||
});
|
|
||||||
} else {
|
} else {
|
||||||
setPopup({
|
setSelectedMessageForDocDisplay(-1);
|
||||||
type: "error",
|
|
||||||
message:
|
|
||||||
"Failed to force search - please refresh the page and try again.",
|
|
||||||
});
|
|
||||||
}
|
}
|
||||||
}}
|
}
|
||||||
retrievalDisabled={retrievalDisabled}
|
}}
|
||||||
/>
|
handleForceSearch={() => {
|
||||||
</div>
|
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 {
|
} else {
|
||||||
return (
|
return (
|
||||||
|
@@ -113,6 +113,7 @@ export const AIMessage = ({
|
|||||||
if (!isReady) {
|
if (!isReady) {
|
||||||
return <div />;
|
return <div />;
|
||||||
}
|
}
|
||||||
|
console.log(content);
|
||||||
|
|
||||||
if (!isComplete) {
|
if (!isComplete) {
|
||||||
const trimIncompleteCodeSection = (
|
const trimIncompleteCodeSection = (
|
||||||
@@ -223,14 +224,29 @@ export const AIMessage = ({
|
|||||||
key={messageId}
|
key={messageId}
|
||||||
className="prose max-w-full"
|
className="prose max-w-full"
|
||||||
components={{
|
components={{
|
||||||
a: ({ node, ...props }) => (
|
a: (props) => {
|
||||||
<a
|
const { node, ...rest } = props;
|
||||||
{...props}
|
// for some reason <a> tags cause the onClick to not apply
|
||||||
className="text-blue-500 hover:text-blue-700"
|
// and the links are unclickable
|
||||||
target="_blank"
|
// TODO: fix the fact that you have to double click to follow link
|
||||||
rel="noopener noreferrer"
|
// for the first link
|
||||||
/>
|
return (
|
||||||
),
|
<a
|
||||||
|
key={node?.position?.start?.offset}
|
||||||
|
onClick={() =>
|
||||||
|
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}
|
||||||
|
</a>
|
||||||
|
);
|
||||||
|
},
|
||||||
code: (props) => (
|
code: (props) => (
|
||||||
<CodeBlock {...props} content={content as string} />
|
<CodeBlock {...props} content={content as string} />
|
||||||
),
|
),
|
||||||
|
Reference in New Issue
Block a user