import type { TriggerEvent } from '@/app/components/plugins/types' import type { TriggerProviderApiEntity } from '@/app/components/workflow/block-selector/types' import { useState } from 'react' import { useTranslation } from 'react-i18next' import { useLanguage } from '@/app/components/header/account-setting/model-provider-page/hooks' import { useTriggerProviderInfo } from '@/service/use-triggers' import { cn } from '@/utils/classnames' import { usePluginStore } from '../store' import { EventDetailDrawer } from './event-detail-drawer' type TriggerEventCardProps = { eventInfo: TriggerEvent providerInfo: TriggerProviderApiEntity } const TriggerEventCard = ({ eventInfo, providerInfo }: TriggerEventCardProps) => { const { identity, description } = eventInfo const language = useLanguage() const [showDetail, setShowDetail] = useState(false) const title = identity.label?.[language] ?? identity.label?.en_US ?? '' const descriptionText = description?.[language] ?? description?.en_US ?? '' return ( <>
setShowDetail(true)} >
{title}
{descriptionText}
{showDetail && ( setShowDetail(false)} /> )} ) } export const TriggerEventsList = () => { const { t } = useTranslation() const detail = usePluginStore(state => state.detail) const { data: providerInfo } = useTriggerProviderInfo(detail?.provider || '') const triggerEvents = providerInfo?.events || [] if (!providerInfo || !triggerEvents.length) return null return (
{t('events.actionNum', { ns: 'pluginTrigger', num: triggerEvents.length, event: t(`events.${triggerEvents.length > 1 ? 'events' : 'event'}`, { ns: 'pluginTrigger' }) })}
{ triggerEvents.map((triggerEvent: TriggerEvent) => ( )) }
) }