import { useLanguage } from '@/app/components/header/account-setting/model-provider-page/hooks' import type { TriggerEvent } from '@/app/components/plugins/types' import type { TriggerProviderApiEntity } from '@/app/components/workflow/block-selector/types' import { useTriggerProviderInfo } from '@/service/use-triggers' import cn from '@/utils/classnames' import { useState } from 'react' import { useTranslation } from 'react-i18next' 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) return ( <>
setShowDetail(true)} >
{identity.label[language]}
{description[language]}
{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('pluginTrigger.events.actionNum', { num: triggerEvents.length, event: t(`pluginTrigger.events.${triggerEvents.length > 1 ? 'events' : 'event'}`) })}
{ triggerEvents.map((triggerEvent: TriggerEvent) => ( )) }
) }