refactor: move biz logic to core

This commit is contained in:
Henry Li
2026-01-16 19:51:39 +08:00
parent f6c20dbcfe
commit ce70b67459
5 changed files with 89 additions and 81 deletions

View File

@@ -5,6 +5,7 @@ import {
Message as AIElementMessage,
MessageContent as AIElementMessageContent,
MessageResponse as AIElementMessageResponse,
MessageToolbar,
} from "@/components/ai-elements/message";
import {
extractContentFromMessage,
@@ -15,6 +16,7 @@ import { useRehypeSplitWordsIntoSpans } from "@/core/rehype";
import { cn } from "@/lib/utils";
import { MessageGroup } from "./message-group";
import { CopyButton } from "../copy-button";
export function MessageListItem({
className,
@@ -38,6 +40,17 @@ export function MessageListItem({
messagesInGroup={messagesInGroup}
isLoading={isLoading}
/>
<MessageToolbar
className={cn(
message.type === "human" && "justify-end",
message.type === "human" ? "-bottom-9" : "-bottom-8",
"absolute right-0 left-0 z-20 opacity-0 transition-opacity delay-200 duration-300 group-hover/conversation-message:opacity-100",
)}
>
<div className="flex gap-1">
<CopyButton clipboardData={extractContentFromMessage(message)} />
</div>
</MessageToolbar>
</AIElementMessage>
);
}

View File

@@ -31,7 +31,7 @@ export function MessageList({
<ConversationContent className="mx-auto w-full max-w-(--container-width-md)">
{groupMessages(
thread.messages,
(groupedMessages, groupIndex, isLastGroup) => {
(groupedMessages) => {
if (groupedMessages[0] && hasContent(groupedMessages[0])) {
const message = groupedMessages[0];
return (