diff --git a/web/app/components/base/copy-btn/index.tsx b/web/app/components/base/copy-btn/index.tsx index 2acb5d8e76..750abbf5dd 100644 --- a/web/app/components/base/copy-btn/index.tsx +++ b/web/app/components/base/copy-btn/index.tsx @@ -1,6 +1,7 @@ 'use client' import { useState } from 'react' import { t } from 'i18next' +import { debounce } from 'lodash-es' import copy from 'copy-to-clipboard' import s from './style.module.css' import Tooltip from '@/app/components/base/tooltip' @@ -18,22 +19,29 @@ const CopyBtn = ({ }: ICopyBtnProps) => { const [isCopied, setIsCopied] = useState(false) + const onClickCopy = debounce(() => { + copy(value) + setIsCopied(true) + }, 100) + + const onMouseLeave = debounce(() => { + setIsCopied(false) + }, 100) + return (
{ - copy(value) - setIsCopied(true) - }} + onClick={onClickCopy} >
diff --git a/web/app/components/plugins/plugin-detail-panel/action-list.tsx b/web/app/components/plugins/plugin-detail-panel/action-list.tsx index 452018cdd8..26ccfe83e0 100644 --- a/web/app/components/plugins/plugin-detail-panel/action-list.tsx +++ b/web/app/components/plugins/plugin-detail-panel/action-list.tsx @@ -1,14 +1,35 @@ import React from 'react' import { useTranslation } from 'react-i18next' +import Button from '@/app/components/base/button' +import Indicator from '@/app/components/header/indicator' + +const ActionCard = () => { + return ( +
+
Notion Page Search
+
A tool for performing a Google SERP search and extracting snippets and webpages.Input should be a search query.
+
+ ) +} const ActionList = () => { const { t } = useTranslation() return ( -
-
{t('plugin.detailPanel.actionNum', { num: 3 })}
-
-
Notion Page Search
-
A tool for performing a Google SERP search and extracting snippets and webpages.Input should be a search query.
+
+
+
+ {t('plugin.detailPanel.actionNum', { num: 3 })} + +
+ +
+
+ + +
) diff --git a/web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx b/web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx index ddfe434e55..4dfd4bbd55 100644 --- a/web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx +++ b/web/app/components/plugins/plugin-detail-panel/endpoint-list.tsx @@ -1,9 +1,91 @@ import React from 'react' +import { useTranslation } from 'react-i18next' +import { RiAddLine, RiLoginCircleLine } from '@remixicon/react' +import ActionButton from '@/app/components/base/action-button' +import CopyBtn from '@/app/components/base/copy-btn' +import Indicator from '@/app/components/header/indicator' +import Tooltip from '@/app/components/base/tooltip' +import Switch from '@/app/components/base/switch' + +const EndpointCard = () => { + const { t } = useTranslation() + return ( +
+
+
+ +
Endpoint for Unreal workspace
+
+
+
Start Callback
+
+
https://extension.dify.ai/a1b2c3d4/onStart
+ +
+
+
+
Finish Callback
+
+
https://extension.dify.ai/a1b2c3d4/onFinish
+ +
+
+
+
+
+ + {t('plugin.detailPanel.serviceOk')} +
+ {/*
+ + {t('plugin.detailPanel.disabled')} +
*/} + {}} + size='sm' + /> +
+
+ ) +} const EndpointList = () => { + const { t } = useTranslation() return ( -
-

Endpoints

+
+
+
+ {t('plugin.detailPanel.endpoints')} + + {t('appDebug.voice.voiceSettings.resolutionTooltip').split('\n').map(item => ( +
{item}
+ ))} +
+ } + /> +
+ + + +
+
{t('plugin.detailPanel.endpointsEmpty')}
+
+ + + +
) } diff --git a/web/app/components/plugins/plugin-detail-panel/index.tsx b/web/app/components/plugins/plugin-detail-panel/index.tsx index b118a8c8f5..62163008c1 100644 --- a/web/app/components/plugins/plugin-detail-panel/index.tsx +++ b/web/app/components/plugins/plugin-detail-panel/index.tsx @@ -5,7 +5,7 @@ import { useTranslation } from 'react-i18next' import { usePathname, useRouter, useSearchParams } from 'next/navigation' import { RiCloseLine, RiVerifiedBadgeLine } from '@remixicon/react' import type { Plugin } from '../types' -import { PluginType } from '../types' +// import { PluginType } from '../types' import Badge from '../../base/badge' import Description from '../card/base/description' import Icon from '../card/base/card-icon' @@ -124,15 +124,9 @@ const PluginDetailPanel: FC = ({
- {pluginDetail.type === PluginType.model && ( - - )} - {pluginDetail.type !== PluginType.model && ( - <> - - - - )} + + +
)} diff --git a/web/i18n/en-US/plugin.ts b/web/i18n/en-US/plugin.ts index 7779d09830..c73c6a448e 100644 --- a/web/i18n/en-US/plugin.ts +++ b/web/i18n/en-US/plugin.ts @@ -11,8 +11,12 @@ const translation = { viewDetail: 'View Detail', remove: 'Remove', }, - modelNum: '{{num}} MODELS INCLUDED', actionNum: '{{num}} ACTIONS INCLUDED', + endpoints: 'Endpoints', + endpointsEmpty: 'Click the \'+\' button to add an endpoint', + serviceOk: 'Service OK', + disabled: 'Disabled', + modelNum: '{{num}} MODELS INCLUDED', }, } diff --git a/web/i18n/zh-Hans/plugin.ts b/web/i18n/zh-Hans/plugin.ts index 9a65f7af7d..9bf3fdeea8 100644 --- a/web/i18n/zh-Hans/plugin.ts +++ b/web/i18n/zh-Hans/plugin.ts @@ -11,8 +11,12 @@ const translation = { viewDetail: '查看详情', remove: '移除', }, - modelNum: '{{num}} 模型已包含', actionNum: '{{num}} ACTIONS 已包含', + endpoints: 'Endpoints', + endpointsEmpty: '点击 \'+\' 按钮添加端点', + serviceOk: '服务正常', + disabled: '停用', + modelNum: '{{num}} 模型已包含', }, }