From 637ae65e9fb529d62c9f16ef03bd4aeea2a50f08 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Rapha=C3=ABl=20Bosi?= <71827178+bosiraphael@users.noreply.github.com> Date: Tue, 16 Jun 2026 16:24:12 +0200 Subject: [PATCH] Hide Input and Test tabs for app logic function nodes (#21671) When opening a logic function node that comes from an app (e.g. "Enrich Company" from People Data Labs), the node detail panel was showing **Input** and **Test** tabs. App-sourced functions should only expose their input fields, with no test surface. This hides the tab list when the logic function has an `applicationId`, rendering the input fields directly. The test tab is also never treated as active for these nodes, which guards against a stale "test" tab state leaking in from a previously-opened custom function (the tab list shares one component instance id). ## Before CleanShot 2026-06-16 at 15 11 32@2x ## After CleanShot 2026-06-16 at 15 11 09@2x Review in cubic --- .../WorkflowEditActionLogicFunction.tsx | 31 ++++++++++++------- 1 file changed, 20 insertions(+), 11 deletions(-) diff --git a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx index b64423e5cc..ebc9dcc638 100644 --- a/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx +++ b/packages/twenty-front/src/modules/workflow/workflow-steps/workflow-actions/logic-function-action/components/WorkflowEditActionLogicFunction.tsx @@ -1,3 +1,4 @@ +import { useIsThirdPartyApplication } from '@/applications/hooks/useIsThirdPartyApplication'; import { LogicFunctionExecutionResult } from '@/logic-functions/components/LogicFunctionExecutionResult'; import { LogicFunctionLogs } from '@/logic-functions/components/LogicFunctionLogs'; import { LogicFunctionTestInputInitEffect } from '@/logic-functions/components/LogicFunctionTestInputInitEffect'; @@ -75,6 +76,10 @@ export const WorkflowEditActionLogicFunction = ({ id: logicFunctionId, }); + const isThirdPartyApp = useIsThirdPartyApplication( + logicFunction?.applicationId, + ); + const activeTabId = useAtomComponentStateValue( activeTabIdComponentState, WORKFLOW_LOGIC_FUNCTION_ACTION_TAB_LIST_COMPONENT_ID, @@ -183,6 +188,8 @@ export const WorkflowEditActionLogicFunction = ({ const hasInputFields = Object.keys(functionInput).length > 0; + const isTestTabActive = !isThirdPartyApp && activeTabId === TEST_TAB_ID; + const tabs = [ { id: INPUT_TAB_ID, @@ -199,17 +206,19 @@ export const WorkflowEditActionLogicFunction = ({ return ( <> - - - + {!isThirdPartyApp && ( + + + + )} - {activeTabId === TEST_TAB_ID ? ( + {isTestTabActive ? ( <>