feat: add inline block document previews (#637)

This commit is contained in:
Jeremy 2024-12-19 17:05:04 +05:30 committed by GitHub
parent b659dcce68
commit bb03c516b5
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
24 changed files with 1122 additions and 805 deletions

View file

@ -1,8 +1,9 @@
import { memo, type SetStateAction } from 'react';
import { memo } from 'react';
import type { BlockKind, UIBlock } from './block';
import type { BlockKind } from './block';
import { FileIcon, LoaderIcon, MessageIcon, PencilEditIcon } from './icons';
import { toast } from 'sonner';
import { useBlock } from '@/hooks/use-block';
const getActionText = (
type: 'create' | 'update' | 'request-suggestions',
@ -25,17 +26,16 @@ const getActionText = (
interface DocumentToolResultProps {
type: 'create' | 'update' | 'request-suggestions';
result: { id: string; title: string; kind: BlockKind };
block: UIBlock;
setBlock: (value: SetStateAction<UIBlock>) => void;
isReadonly: boolean;
}
function PureDocumentToolResult({
type,
result,
setBlock,
isReadonly,
}: DocumentToolResultProps) {
const { setBlock } = useBlock();
return (
<button
type="button"
@ -89,16 +89,16 @@ export const DocumentToolResult = memo(PureDocumentToolResult, () => true);
interface DocumentToolCallProps {
type: 'create' | 'update' | 'request-suggestions';
args: { title: string };
setBlock: (value: SetStateAction<UIBlock>) => void;
isReadonly: boolean;
}
function PureDocumentToolCall({
type,
args,
setBlock,
isReadonly,
}: DocumentToolCallProps) {
const { setBlock } = useBlock();
return (
<button
type="button"