From 09307c5d2f749deb0ca6cca34c8b5061b15d12b4 Mon Sep 17 00:00:00 2001 From: Ivica Cardic Date: Tue, 11 Nov 2025 16:50:23 +0100 Subject: [PATCH 1/2] 1652 client - Refactor WorkflowNodeDetailsPanel to be open when the cluster element editor is open --- .../workflow-editor/WorkflowEditorLayout.tsx | 60 +++++++++---------- .../components/WorkflowNodeDetailsPanel.tsx | 22 ++++--- .../workflow-editor/hooks/useNodeClick.ts | 6 -- 3 files changed, 44 insertions(+), 44 deletions(-) diff --git a/client/src/pages/platform/workflow-editor/WorkflowEditorLayout.tsx b/client/src/pages/platform/workflow-editor/WorkflowEditorLayout.tsx index f1dfa9e319..ec2b850578 100644 --- a/client/src/pages/platform/workflow-editor/WorkflowEditorLayout.tsx +++ b/client/src/pages/platform/workflow-editor/WorkflowEditorLayout.tsx @@ -177,37 +177,37 @@ const WorkflowEditorLayout = ({includeComponents, runDisabled, showWorkflowInput - {currentComponent && ( - <> - + <> + + + + } + invalidateWorkflowQueries={invalidateWorkflowQueries!} + previousComponentDefinitions={previousComponentDefinitions} + updateWorkflowMutation={updateWorkflowMutation!} + workflowNodeOutputs={filteredWorkflowNodeOutputs ?? []} + /> - {dataPillPanelOpen && ( - }> - - - )} - - )} - - - - + {dataPillPanelOpen && ( + }> + + + )} + )} diff --git a/client/src/pages/platform/workflow-editor/components/WorkflowNodeDetailsPanel.tsx b/client/src/pages/platform/workflow-editor/components/WorkflowNodeDetailsPanel.tsx index 6629669e88..b2888c563e 100644 --- a/client/src/pages/platform/workflow-editor/components/WorkflowNodeDetailsPanel.tsx +++ b/client/src/pages/platform/workflow-editor/components/WorkflowNodeDetailsPanel.tsx @@ -64,7 +64,7 @@ import { import {TooltipPortal} from '@radix-ui/react-tooltip'; import {useQueryClient} from '@tanstack/react-query'; import {InfoIcon, XIcon} from 'lucide-react'; -import {useCallback, useEffect, useMemo, useRef, useState} from 'react'; +import {ReactNode, useCallback, useEffect, useMemo, useRef, useState} from 'react'; import isEqual from 'react-fast-compare'; import InlineSVG from 'react-inlinesvg'; import {twMerge} from 'tailwind-merge'; @@ -106,6 +106,7 @@ const TABS: Array<{label: string; name: TabNameType}> = [ interface WorkflowNodeDetailsPanelProps { className?: string; + closeButton?: ReactNode; invalidateWorkflowQueries: () => void; previousComponentDefinitions: Array; updateWorkflowMutation: UpdateWorkflowMutationType; @@ -114,6 +115,7 @@ interface WorkflowNodeDetailsPanelProps { const WorkflowNodeDetailsPanel = ({ className, + closeButton, invalidateWorkflowQueries, previousComponentDefinitions, updateWorkflowMutation, @@ -1155,13 +1157,17 @@ const WorkflowNodeDetailsPanel = ({ )} - + {closeButton ? ( + closeButton + ) : ( + + )}
diff --git a/client/src/pages/platform/workflow-editor/hooks/useNodeClick.ts b/client/src/pages/platform/workflow-editor/hooks/useNodeClick.ts index 12a601e11f..82c819487a 100644 --- a/client/src/pages/platform/workflow-editor/hooks/useNodeClick.ts +++ b/client/src/pages/platform/workflow-editor/hooks/useNodeClick.ts @@ -53,12 +53,6 @@ export default function useNodeClick(data: NodeDataType, id: NodeProps['id'], ac if (!!data.clusterRoot && !clusterElementsCanvasOpen) { setClusterElementsCanvasOpen(true); - - setCurrentComponent(undefined); - - setWorkflowNodeDetailsPanelOpen(false); - - return; } setWorkflowNodeDetailsPanelOpen(true); From a20481b7fb43732d24bc61b916ef987f75b1f97d Mon Sep 17 00:00:00 2001 From: Ivica Cardic Date: Sun, 30 Nov 2025 17:00:18 +0100 Subject: [PATCH 2/2] 1652 client - When deleting the currently selected cluster element, keep the details panel open and switch focus to the main root (not close the panel). --- .../pages/platform/workflow-editor/utils/handleDeleteTask.ts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/client/src/pages/platform/workflow-editor/utils/handleDeleteTask.ts b/client/src/pages/platform/workflow-editor/utils/handleDeleteTask.ts index 62cb9d22e2..9d27b2bb94 100644 --- a/client/src/pages/platform/workflow-editor/utils/handleDeleteTask.ts +++ b/client/src/pages/platform/workflow-editor/utils/handleDeleteTask.ts @@ -227,7 +227,7 @@ export default function handleDeleteTask({ }); if (currentNode?.name === data.name) { - useWorkflowNodeDetailsPanelStore.getState().reset(); + useWorkflowNodeDetailsPanelStore.getState().setWorkflowNodeDetailsPanelOpen(true); setCurrentNode({ ...rootClusterElementNodeData,