'use client' // import { useMemo, useState } from 'react' import { useTranslation } from 'react-i18next' // import { useContext } from 'use-context-selector' // import I18n from '@/context/i18n' // import { getLanguage } from '@/i18n/language' // import { useAppContext } from '@/context/app-context' import { RiHammerFill } from '@remixicon/react' import Indicator from '@/app/components/header/indicator' import Icon from '@/app/components/plugins/card/base/card-icon' import { useFormatTimeFromNow } from './hooks' import type { ToolWithProvider } from '../../workflow/types' import cn from '@/utils/classnames' type Props = { currentProvider?: ToolWithProvider data: ToolWithProvider handleSelect: (provider: ToolWithProvider) => void } const MCPCard = ({ currentProvider, data, handleSelect, }: Props) => { const { t } = useTranslation() const { formatTimeFromNow } = useFormatTimeFromNow() // const { locale } = useContext(I18n) // const language = getLanguage(locale) // const { isCurrentWorkspaceManager } = useAppContext() return (
handleSelect(data)} className={cn( 'relative flex cursor-pointer flex-col rounded-xl border-[1.5px] border-transparent bg-components-card-bg shadow-xs hover:bg-components-card-bg-alt hover:shadow-md', currentProvider?.id === data.id && 'border-components-option-card-option-selected-border bg-components-card-bg-alt', )} >
{data.name}
{data.tools.length > 0 && (
{t('tools.mcp.toolsCount', { count: data.tools.length })}
)} {!data.tools.length && (
{t('tools.mcp.noTools')}
)}
/
{`${t('tools.mcp.updateTime')} ${formatTimeFromNow(data.update_elapsed_time! * 1000)}`}
{data.server_url}
{data.is_team_authorization && } {!data.is_team_authorization && (
{t('tools.mcp.noConfigured')}
)}
) } export default MCPCard