import React from 'react' import { ScrollArea } from '@janhq/joi' import { atom, useAtom } from 'jotai' import { ChevronDown, ChevronUp, Loader } from 'lucide-react' import { twMerge } from 'tailwind-merge' import { MarkdownTextMessage } from './MarkdownTextMessage' interface Props { result: string name: string id: number loading: boolean onExpand: (props: { [id: number]: boolean }) => void } export const toolCallBlockStateAtom = atom<{ [id: number]: boolean }>({}) const ToolCallBlock = ({ id, name, result, loading, onExpand }: Props) => { const [collapseState, setCollapseState] = useAtom(toolCallBlockStateAtom) const isExpanded = collapseState[id] ?? false const handleClick = () => { onExpand({ [id]: !isExpanded }) // setCollapseState((prev) => ({ ...prev, [id]: !isExpanded })) } return (