From 8e600f3302dbfd0bfb6b334696bfda8b97f564cd Mon Sep 17 00:00:00 2001 From: Harry Date: Mon, 8 Sep 2025 23:39:44 +0800 Subject: [PATCH] feat(trigger): optimize trigger parameter schema handling in useConfig - Refactored the trigger parameter schema construction in `useConfig` to utilize a Map for improved efficiency and clarity. - Updated the return value to ensure unique schema entries, enhancing the integrity of the trigger configuration. These changes streamline the management of trigger parameters, improving performance and maintainability in the workflow component. --- .../workflow/nodes/trigger-plugin/use-config.ts | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/web/app/components/workflow/nodes/trigger-plugin/use-config.ts b/web/app/components/workflow/nodes/trigger-plugin/use-config.ts index d517219838..4039793ddb 100644 --- a/web/app/components/workflow/nodes/trigger-plugin/use-config.ts +++ b/web/app/components/workflow/nodes/trigger-plugin/use-config.ts @@ -68,8 +68,14 @@ const useConfig = (id: string, payload: PluginTriggerNodeType) => { // Combined parameter schema (subscription + trigger specific) const triggerParameterSchema = useMemo(() => { - return [...subscriptionParameterSchema, ...triggerSpecificParameterSchema] - }, [subscriptionParameterSchema, triggerSpecificParameterSchema]) + const schemaMap = new Map() + + triggerSpecificParameterSchema.forEach((schema) => { + schemaMap.set(schema.variable || schema.name, schema) + }) + + return Array.from(schemaMap.values()) + }, [triggerSpecificParameterSchema]) const triggerParameterValue = useMemo(() => { if (!triggerParameterSchema.length) return {} @@ -149,6 +155,7 @@ const useConfig = (id: string, payload: PluginTriggerNodeType) => { currentTrigger, triggerParameterSchema, triggerParameterValue, + subscriptionParameterSchema, setTriggerParameterValue, setInputVar, outputSchema,