import { memo } from 'react'; import type { ArtifactKind } from './artifact'; import { FileIcon, LoaderIcon, MessageIcon, PencilEditIcon } from './icons'; import { toast } from 'sonner'; import { useArtifact } from '@/hooks/use-artifact'; const getActionText = ( type: 'create' | 'update' | 'request-suggestions', tense: 'present' | 'past', ) => { switch (type) { case 'create': return tense === 'present' ? 'Creating' : 'Created'; case 'update': return tense === 'present' ? 'Updating' : 'Updated'; case 'request-suggestions': return tense === 'present' ? 'Adding suggestions' : 'Added suggestions to'; default: return null; } }; interface DocumentToolResultProps { type: 'create' | 'update' | 'request-suggestions'; result: { id: string; title: string; kind: ArtifactKind }; isReadonly: boolean; } function PureDocumentToolResult({ type, result, isReadonly, }: DocumentToolResultProps) { const { setArtifact } = useArtifact(); return ( ); } export const DocumentToolResult = memo(PureDocumentToolResult, () => true); interface DocumentToolCallProps { type: 'create' | 'update' | 'request-suggestions'; args: | { title: string; kind: ArtifactKind } // for create | { id: string; description: string } // for update | { documentId: string }; // for request-suggestions isReadonly: boolean; } function PureDocumentToolCall({ type, args, isReadonly, }: DocumentToolCallProps) { const { setArtifact } = useArtifact(); return ( ); } export const DocumentToolCall = memo(PureDocumentToolCall, () => true);