'use client' import Drawer from '@/app/components/base/drawer' import { type PluginDetail, PluginType } from '@/app/components/plugins/types' import cn from '@/utils/classnames' import type { FC } from 'react' import { useEffect } from 'react' import ActionList from './action-list' import AgentStrategyList from './agent-strategy-list' import DatasourceActionList from './datasource-action-list' import DetailHeader from './detail-header' import EndpointList from './endpoint-list' import ModelList from './model-list' import { SubscriptionList } from './subscription-list' import { usePluginStore } from './subscription-list/store' import { TriggerEventsList } from './trigger-events-list' type Props = { detail?: PluginDetail onUpdate: () => void onHide: () => void } const PluginDetailPanel: FC = ({ detail, onUpdate, onHide, }) => { const handleUpdate = (isDelete = false) => { if (isDelete) onHide() onUpdate() } const { setDetail } = usePluginStore() useEffect(() => { setDetail(!detail ? undefined : { plugin_id: detail.plugin_id, provider: `${detail.plugin_id}/${detail.declaration.name}`, declaration: detail.declaration, name: detail.name, }) }, [detail]) if (!detail) return null return ( {detail && ( <>
{detail.declaration.category === PluginType.trigger && ( <> )} {!!detail.declaration.tool && } {!!detail.declaration.agent_strategy && } {!!detail.declaration.endpoint && } {!!detail.declaration.model && } {!!detail.declaration.datasource && }
)}
) } export default PluginDetailPanel