'use client' import React, { useState } from 'react' import { useTranslation } from 'react-i18next' import { RiLoopLeftLine, } from '@remixicon/react' import Tooltip from '@/app/components/base/tooltip' import AppBasic from '@/app/components/app-sidebar/basic' import { asyncRunSafe } from '@/utils' import { basePath } from '@/utils/var' import Switch from '@/app/components/base/switch' import Divider from '@/app/components/base/divider' import CopyFeedback from '@/app/components/base/copy-feedback' import Confirm from '@/app/components/base/confirm' import ShareQRCode from '@/app/components/base/qrcode' import type { AppDetailResponse } from '@/models/app' import { useAppContext } from '@/context/app-context' import type { AppSSO } from '@/types/app' import Indicator from '@/app/components/header/indicator' import cn from '@/utils/classnames' export type IAppCardProps = { appInfo: AppDetailResponse & Partial onGenerateCode?: () => Promise } function MCPServiceCard({ appInfo, onGenerateCode, }: IAppCardProps) { const { t } = useTranslation() const { isCurrentWorkspaceManager, isCurrentWorkspaceEditor } = useAppContext() const [genLoading, setGenLoading] = useState(false) const [showConfirmDelete, setShowConfirmDelete] = useState(false) const basicName = t('appOverview.overview.apiInfo.title') const toggleDisabled = !isCurrentWorkspaceEditor const runningStatus = appInfo.enable_site // TODO const { app_base_url, access_token } = appInfo.site ?? {} const appMode = (appInfo.mode !== 'completion' && appInfo.mode !== 'workflow') ? 'chat' : appInfo.mode const appUrl = `${app_base_url}${basePath}/${appMode}/${access_token}` const onGenCode = async () => { if (onGenerateCode) { setGenLoading(true) await asyncRunSafe(onGenerateCode()) setGenLoading(false) } } const onChangeStatus = async (status: boolean) => { // TODO } return (
{runningStatus ? t('appOverview.overview.status.running') : t('appOverview.overview.status.disable')}
{t('appOverview.overview.appInfo.accessibleAddress')}
{appUrl}
{/* button copy link/ button regenerate */} {showConfirmDelete && ( { onGenCode() setShowConfirmDelete(false) }} onCancel={() => setShowConfirmDelete(false)} /> )} {isCurrentWorkspaceManager && (
setShowConfirmDelete(true)} >
)}
) } export default MCPServiceCard