mirror of
https://github.com/MODSetter/SurfSense.git
synced 2026-04-25 00:36:31 +02:00
refactor: simplify author metadata handling in NewChatPage and UserMessage components
This commit is contained in:
parent
7ed6e9c75f
commit
75fd39c249
2 changed files with 17 additions and 18 deletions
|
|
@ -218,15 +218,13 @@ export default function NewChatPage() {
|
|||
return;
|
||||
}
|
||||
|
||||
const isSharedChat = currentThread?.visibility === "SEARCH_SPACE";
|
||||
|
||||
setMessages((prev) => {
|
||||
if (syncedMessages.length < prev.length) {
|
||||
return prev;
|
||||
}
|
||||
|
||||
return syncedMessages.map((msg) => {
|
||||
const member = isSharedChat && msg.author_id
|
||||
const member = msg.author_id
|
||||
? membersData?.find((m) => m.user_id === msg.author_id)
|
||||
: null;
|
||||
|
||||
|
|
@ -241,7 +239,7 @@ export default function NewChatPage() {
|
|||
thread_id: msg.thread_id,
|
||||
role: msg.role.toLowerCase() as "user" | "assistant" | "system",
|
||||
content: msg.content,
|
||||
author_id: isSharedChat ? msg.author_id : null,
|
||||
author_id: msg.author_id,
|
||||
created_at: msg.created_at,
|
||||
author_display_name: member?.user_display_name ?? existingAuthor?.displayName ?? null,
|
||||
author_avatar_url: member?.user_avatar_url ?? existingAuthor?.avatarUrl ?? null,
|
||||
|
|
@ -249,7 +247,7 @@ export default function NewChatPage() {
|
|||
});
|
||||
});
|
||||
},
|
||||
[isRunning, membersData, currentThread?.visibility]
|
||||
[isRunning, membersData]
|
||||
);
|
||||
|
||||
useMessagesSync(threadId, handleSyncedMessagesUpdate);
|
||||
|
|
@ -485,18 +483,17 @@ export default function NewChatPage() {
|
|||
// Add user message to state
|
||||
const userMsgId = `msg-user-${Date.now()}`;
|
||||
|
||||
// Include author metadata for shared chats
|
||||
const authorMetadata =
|
||||
currentThread?.visibility === "SEARCH_SPACE" && currentUser
|
||||
? {
|
||||
custom: {
|
||||
author: {
|
||||
displayName: currentUser.display_name ?? null,
|
||||
avatarUrl: currentUser.avatar_url ?? null,
|
||||
},
|
||||
// Always include author metadata so the UI layer can decide visibility
|
||||
const authorMetadata = currentUser
|
||||
? {
|
||||
custom: {
|
||||
author: {
|
||||
displayName: currentUser.display_name ?? null,
|
||||
avatarUrl: currentUser.avatar_url ?? null,
|
||||
},
|
||||
}
|
||||
: undefined;
|
||||
},
|
||||
}
|
||||
: undefined;
|
||||
|
||||
const userMessage: ThreadMessageLike = {
|
||||
id: userMsgId,
|
||||
|
|
@ -884,7 +881,6 @@ export default function NewChatPage() {
|
|||
setMessageDocumentsMap,
|
||||
setAgentCreatedDocuments,
|
||||
queryClient,
|
||||
currentThread,
|
||||
currentUser,
|
||||
disabledTools,
|
||||
updateChatTabTitle,
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ import { useAtomValue } from "jotai";
|
|||
import { CheckIcon, CopyIcon, FileText, Pen } from "lucide-react";
|
||||
import Image from "next/image";
|
||||
import { type FC, useState } from "react";
|
||||
import { currentThreadAtom } from "@/atoms/chat/current-thread.atom";
|
||||
import { messageDocumentsMapAtom } from "@/atoms/chat/mentioned-documents.atom";
|
||||
import { TooltipIconButton } from "@/components/assistant-ui/tooltip-icon-button";
|
||||
|
||||
|
|
@ -51,6 +52,8 @@ export const UserMessage: FC = () => {
|
|||
const mentionedDocs = messageId ? messageDocumentsMap[messageId] : undefined;
|
||||
const metadata = useAuiState(({ message }) => message?.metadata);
|
||||
const author = metadata?.custom?.author as AuthorMetadata | undefined;
|
||||
const isSharedChat = useAtomValue(currentThreadAtom).visibility === "SEARCH_SPACE";
|
||||
const showAvatar = isSharedChat && !!author;
|
||||
|
||||
return (
|
||||
<MessagePrimitive.Root
|
||||
|
|
@ -81,7 +84,7 @@ export const UserMessage: FC = () => {
|
|||
<UserActionBar />
|
||||
</div>
|
||||
</div>
|
||||
{author && (
|
||||
{showAvatar && (
|
||||
<div className="shrink-0 mb-1.5">
|
||||
<UserAvatar displayName={author.displayName} avatarUrl={author.avatarUrl} />
|
||||
</div>
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue