From 01b2f9cff6ab184e05ac1f9a046ba122318d3fa7 Mon Sep 17 00:00:00 2001 From: Harry Date: Mon, 8 Sep 2025 18:29:48 +0800 Subject: [PATCH] feat: add providerType prop to form components for dynamic behavior - Introduced `providerType` prop in `FormInputItem`, `ToolForm`, and `ToolFormItem` components to support both 'tool' and 'trigger' types, enhancing flexibility in handling different provider scenarios. - Updated the `useFetchDynamicOptions` function to accept `provider_type` as 'tool' | 'trigger', allowing for more dynamic option fetching based on the provider type. These changes improve the adaptability of the form components and streamline the integration of different provider types in the workflow. --- .../workflow/nodes/_base/components/form-input-item.tsx | 4 +++- .../workflow/nodes/tool/components/tool-form/index.tsx | 3 +++ .../workflow/nodes/tool/components/tool-form/item.tsx | 3 +++ web/app/components/workflow/nodes/trigger-plugin/panel.tsx | 1 + web/service/use-plugins.ts | 2 +- 5 files changed, 11 insertions(+), 2 deletions(-) diff --git a/web/app/components/workflow/nodes/_base/components/form-input-item.tsx b/web/app/components/workflow/nodes/_base/components/form-input-item.tsx index 68d979eadc..750adafd45 100644 --- a/web/app/components/workflow/nodes/_base/components/form-input-item.tsx +++ b/web/app/components/workflow/nodes/_base/components/form-input-item.tsx @@ -34,6 +34,7 @@ type Props = { currentTool?: Tool currentProvider?: ToolWithProvider extraParams?: Record + providerType?: 'tool' | 'trigger' } const FormInputItem: FC = ({ @@ -46,6 +47,7 @@ const FormInputItem: FC = ({ currentTool, currentProvider, extraParams, + providerType = 'tool', }) => { const language = useLanguage() const [dynamicOptions, setDynamicOptions] = useState(null) @@ -138,7 +140,7 @@ const FormInputItem: FC = ({ currentProvider?.name || '', currentTool?.name || '', variable || '', - 'tool', + providerType, extraParams, ) diff --git a/web/app/components/workflow/nodes/tool/components/tool-form/index.tsx b/web/app/components/workflow/nodes/tool/components/tool-form/index.tsx index 25e49e1809..1e45b4d0b1 100644 --- a/web/app/components/workflow/nodes/tool/components/tool-form/index.tsx +++ b/web/app/components/workflow/nodes/tool/components/tool-form/index.tsx @@ -17,6 +17,7 @@ type Props = { currentTool?: Tool currentProvider?: ToolWithProvider extraParams?: Record + providerType?: 'tool' | 'trigger' } const ToolForm: FC = ({ @@ -29,6 +30,7 @@ const ToolForm: FC = ({ currentTool, currentProvider, extraParams, + providerType = 'tool', }) => { return (
@@ -45,6 +47,7 @@ const ToolForm: FC = ({ currentTool={currentTool} currentProvider={currentProvider} extraParams={extraParams} + providerType={providerType} /> )) } diff --git a/web/app/components/workflow/nodes/tool/components/tool-form/item.tsx b/web/app/components/workflow/nodes/tool/components/tool-form/item.tsx index 0ccf2d395f..18dd770db0 100644 --- a/web/app/components/workflow/nodes/tool/components/tool-form/item.tsx +++ b/web/app/components/workflow/nodes/tool/components/tool-form/item.tsx @@ -25,6 +25,7 @@ type Props = { currentTool?: Tool currentProvider?: ToolWithProvider extraParams?: Record + providerType?: 'tool' | 'trigger' } const ToolFormItem: FC = ({ @@ -37,6 +38,7 @@ const ToolFormItem: FC = ({ currentTool, currentProvider, extraParams, + providerType = 'tool', }) => { const language = useLanguage() const { name, label, type, required, tooltip, input_schema } = schema @@ -92,6 +94,7 @@ const ToolFormItem: FC = ({ currentTool={currentTool} currentProvider={currentProvider} extraParams={extraParams} + providerType={providerType} /> {isShowSchema && ( diff --git a/web/app/components/workflow/nodes/trigger-plugin/panel.tsx b/web/app/components/workflow/nodes/trigger-plugin/panel.tsx index 3187741734..b656be177c 100644 --- a/web/app/components/workflow/nodes/trigger-plugin/panel.tsx +++ b/web/app/components/workflow/nodes/trigger-plugin/panel.tsx @@ -42,6 +42,7 @@ const Panel: FC> = ({ schema={triggerParameterSchema as any} value={triggerParameterValue} onChange={setTriggerParameterValue} + providerType="trigger" />
diff --git a/web/service/use-plugins.ts b/web/service/use-plugins.ts index 3ede69c2af..6f184d356b 100644 --- a/web/service/use-plugins.ts +++ b/web/service/use-plugins.ts @@ -613,7 +613,7 @@ export const usePluginInfo = (providerName?: string) => { }) } -export const useFetchDynamicOptions = (plugin_id: string, provider: string, action: string, parameter: string, provider_type: 'tool', extra?: Record) => { +export const useFetchDynamicOptions = (plugin_id: string, provider: string, action: string, parameter: string, provider_type: 'tool' | 'trigger', extra?: Record) => { return useMutation({ mutationFn: () => get<{ options: FormOption[] }>('/workspaces/current/plugin/parameters/dynamic-options', { params: {