'use client' import type { PluginDetail } from '@/app/components/plugins/types' import type { TriggerSubscription } from '@/app/components/workflow/block-selector/types' import { cn } from '@langgenius/dify-ui/cn' import { IconButton } from '@langgenius/dify-ui/icon-button' import { Popover, PopoverContent, PopoverTrigger } from '@langgenius/dify-ui/popover' import { useBoolean } from 'ahooks' import { useTranslation } from 'react-i18next' import { DeleteConfirm } from './delete-confirm' import { EditModal } from './edit' type Props = Readonly<{ data: TriggerSubscription pluginDetail?: PluginDetail }> const SubscriptionCard = ({ data, pluginDetail }: Props) => { const { t } = useTranslation() const [isShowDeleteModal, { setTrue: showDeleteModal, setFalse: hideDeleteModal }] = useBoolean(false) const [isShowEditModal, { setTrue: showEditModal, setFalse: hideEditModal }] = useBoolean(false) return ( <>
{data.name}
$['operation.edit'], { ns: 'common' })} onClick={showEditModal} className="transition-colors" > $['operation.delete'], { ns: 'common' })} tone="destructive" onClick={showDeleteModal} className="subscription-delete-btn transition-colors" >
{data.endpoint ? ( {data.endpoint} {data.endpoint} ) : (
{data.endpoint}
)}
ยท
{data.workflows_in_use > 0 ? t(($) => $['subscription.list.item.usedByNum'], { ns: 'pluginTrigger', num: data.workflows_in_use, }) : t(($) => $['subscription.list.item.noUsed'], { ns: 'pluginTrigger' })}
{isShowDeleteModal && ( )} {isShowEditModal && ( )} ) } export default SubscriptionCard