'use client' import type { FC } from 'react' import React from 'react' import type { ToolWithProvider } from '../../types' import { BlockEnum } from '../../types' import type { ToolDefaultValue } from '../types' import Tooltip from '@/app/components/base/tooltip' import type { Tool } from '@/app/components/tools/types' import { useGetLanguage } from '@/context/i18n' import BlockIcon from '../../block-icon' import cn from '@/utils/classnames' import { useTranslation } from 'react-i18next' import { RiCheckLine } from '@remixicon/react' import Badge from '@/app/components/base/badge' type Props = { provider: ToolWithProvider payload: Tool disabled?: boolean onSelect: (type: BlockEnum, tool?: ToolDefaultValue) => void } const ToolItem: FC = ({ provider, payload, onSelect, disabled, }) => { const { t } = useTranslation() const language = useGetLanguage() return (
{payload.label[language]}
{payload.description[language]}
)} >
{ if (disabled) return const params: Record = {} if (payload.parameters) { payload.parameters.forEach((item) => { params[item.name] = '' }) } onSelect(BlockEnum.Tool, { provider_id: provider.id, provider_type: provider.type, provider_name: provider.name, tool_name: payload.name, tool_label: payload.label[language], title: payload.label[language], is_team_authorization: provider.is_team_authorization, output_schema: payload.output_schema, paramSchemas: payload.parameters, params, }) }} >
{payload.label[language]}
{disabled &&
{t('tools.addToolModal.added')}
}
) } export default React.memo(ToolItem)