import { ChevronDown, ChevronUp, Loader } from 'lucide-react' import { cn } from '@/lib/utils' import { create } from 'zustand' import { RenderMarkdown } from './RenderMarkdown' interface Props { result: string name: string id: number loading: boolean } type ToolCallBlockState = { collapseState: { [id: number]: boolean } setCollapseState: (id: number, expanded: boolean) => void } const useToolCallBlockStore = create((set) => ({ collapseState: {}, setCollapseState: (id, expanded) => set((state) => ({ collapseState: { ...state.collapseState, [id]: expanded, }, })), })) const ToolCallBlock = ({ id, name, result, loading }: Props) => { const { collapseState, setCollapseState } = useToolCallBlockStore() const isExpanded = collapseState[id] ?? false const handleClick = () => { const newExpandedState = !isExpanded setCollapseState(id, newExpandedState) } return (
{loading && ( )}
) } export default ToolCallBlock