chore: update to ai sdk v5 beta (#1074)

This commit is contained in:
Jeremy 2025-07-03 02:26:34 -07:00 committed by GitHub
parent 7d8e71383f
commit 4c281fe09d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
54 changed files with 1372 additions and 1060 deletions

View file

@ -1,28 +1,37 @@
'use client';
import { ChatRequestOptions, Message } from 'ai';
import { Button } from './ui/button';
import { Dispatch, SetStateAction, useEffect, useRef, useState } from 'react';
import {
type Dispatch,
type SetStateAction,
useEffect,
useRef,
useState,
} from 'react';
import { Textarea } from './ui/textarea';
import { deleteTrailingMessages } from '@/app/(chat)/actions';
import { UseChatHelpers } from '@ai-sdk/react';
import type { UseChatHelpers } from '@ai-sdk/react';
import type { ChatMessage } from '@/lib/types';
import { getTextFromMessage } from '@/lib/utils';
export type MessageEditorProps = {
message: Message;
message: ChatMessage;
setMode: Dispatch<SetStateAction<'view' | 'edit'>>;
setMessages: UseChatHelpers['setMessages'];
reload: UseChatHelpers['reload'];
setMessages: UseChatHelpers<ChatMessage>['setMessages'];
regenerate: UseChatHelpers<ChatMessage>['regenerate'];
};
export function MessageEditor({
message,
setMode,
setMessages,
reload,
regenerate,
}: MessageEditorProps) {
const [isSubmitting, setIsSubmitting] = useState<boolean>(false);
const [draftContent, setDraftContent] = useState<string>(message.content);
const [draftContent, setDraftContent] = useState<string>(
getTextFromMessage(message),
);
const textareaRef = useRef<HTMLTextAreaElement>(null);
useEffect(() => {
@ -75,14 +84,12 @@ 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);
if (index !== -1) {
const updatedMessage = {
const updatedMessage: ChatMessage = {
...message,
content: draftContent,
parts: [{ type: 'text', text: draftContent }],
};
@ -93,7 +100,7 @@ export function MessageEditor({
});
setMode('view');
reload();
regenerate();
}}
>
{isSubmitting ? 'Sending...' : 'Send'}