refactor: replace message.content with message.parts (#868)

This commit is contained in:
Jeremy 2025-03-16 18:42:29 -07:00 committed by GitHub
parent 553a3d825a
commit 47a630fd53
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
25 changed files with 1311 additions and 311 deletions

View file

@ -5,17 +5,13 @@ import { Button } from './ui/button';
import { Dispatch, SetStateAction, useEffect, useRef, useState } from 'react';
import { Textarea } from './ui/textarea';
import { deleteTrailingMessages } from '@/app/(chat)/actions';
import { toast } from 'sonner';
import { UseChatHelpers } from '@ai-sdk/react';
export type MessageEditorProps = {
message: Message;
setMode: Dispatch<SetStateAction<'view' | 'edit'>>;
setMessages: (
messages: Message[] | ((messages: Message[]) => Message[]),
) => void;
reload: (
chatRequestOptions?: ChatRequestOptions,
) => Promise<string | null | undefined>;
setMessages: UseChatHelpers['setMessages'];
reload: UseChatHelpers['reload'];
};
export function MessageEditor({
@ -79,6 +75,7 @@ export function MessageEditor({
id: message.id,
});
// @ts-expect-error todo: support UIMessage in setMessages
setMessages((messages) => {
const index = messages.findIndex((m) => m.id === message.id);
@ -86,6 +83,7 @@ export function MessageEditor({
const updatedMessage = {
...message,
content: draftContent,
parts: [{ type: 'text', text: draftContent }],
};
return [...messages.slice(0, index), updatedMessage];