Skip to content

Commit bdab790

Browse files
committed
2227 - Reorganize WorkflowNodesTabs
1 parent cd3d872 commit bdab790

6 files changed

Lines changed: 57 additions & 47 deletions

File tree

client/src/pages/platform/workflow-editor/components/WorkflowNodesPopoverMenuComponentList.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
import {Input} from '@/components/ui/input';
2-
import WorkflowNodesTabs from '@/pages/platform/workflow-editor/components/WorkflowNodesTabs';
2+
import WorkflowNodesTabs from '@/pages/platform/workflow-editor/components/workflow-nodes-tabs/WorkflowNodesTabs';
33
import useWorkflowDataStore from '@/pages/platform/workflow-editor/stores/useWorkflowDataStore';
44
import CopilotButton from '@/shared/components/copilot/CopilotButton';
55
import {Source} from '@/shared/components/copilot/stores/useCopilotStore';

client/src/pages/platform/workflow-editor/components/WorkflowNodesSidebar.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,7 @@ import {Input} from '@/components/ui/input';
22
import {ComponentDefinitionBasic, TaskDispatcherDefinition} from '@/shared/middleware/platform/configuration';
33
import {useEffect, useState} from 'react';
44

5-
import WorkflowNodesTabs from './WorkflowNodesTabs';
5+
import WorkflowNodesTabs from './workflow-nodes-tabs/WorkflowNodesTabs';
66

77
const WorkflowNodesSidebar = ({
88
data,
Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
import {ScrollArea} from '@/components/ui/scroll-area';
2+
import {TabsContent} from '@/components/ui/tabs';
3+
import {ComponentDefinitionBasic} from '@/shared/middleware/platform/configuration';
4+
import {ClickedDefinitionType, DefinitionType} from '@/shared/types';
5+
6+
import WorkflowNodesTabsItem from './WorkflowNodesTabsItem';
7+
8+
interface WorkflowNodesTabContentProps {
9+
emptyMessage: string;
10+
items: Array<ComponentDefinitionBasic | DefinitionType> | undefined;
11+
itemsDraggable: boolean;
12+
onItemClick?: (clickedItem: ClickedDefinitionType) => void;
13+
selectedComponentName?: string;
14+
tabValue: string;
15+
}
16+
17+
const WorkflowNodesTabContent = ({
18+
emptyMessage,
19+
items,
20+
itemsDraggable,
21+
onItemClick,
22+
selectedComponentName,
23+
tabValue,
24+
}: WorkflowNodesTabContentProps) => (
25+
<ScrollArea className="overflow-y-auto px-3">
26+
<TabsContent className="mt-0 w-full flex-1" value={tabValue}>
27+
<ul className="space-y-2" role="list">
28+
{(!items || items.length === 0) && (
29+
<span className="block px-3 py-2 text-xs text-content-neutral-secondary">{emptyMessage}</span>
30+
)}
31+
32+
{items?.map((item) => (
33+
<WorkflowNodesTabsItem
34+
draggable={itemsDraggable}
35+
handleClick={() => onItemClick && onItemClick(item as ClickedDefinitionType)}
36+
key={item.name}
37+
node={item as DefinitionType}
38+
selected={tabValue === 'components' ? selectedComponentName === item.name : undefined}
39+
/>
40+
))}
41+
</ul>
42+
</TabsContent>
43+
</ScrollArea>
44+
);
45+
46+
export default WorkflowNodesTabContent;

client/src/pages/platform/workflow-editor/components/WorkflowNodesTabs.tsx renamed to client/src/pages/platform/workflow-editor/components/workflow-nodes-tabs/WorkflowNodesTabs.tsx

Lines changed: 4 additions & 45 deletions
Original file line numberDiff line numberDiff line change
@@ -1,13 +1,12 @@
1-
import {ScrollArea} from '@/components/ui/scroll-area';
2-
import {Tabs, TabsContent, TabsList, TabsTrigger} from '@/components/ui/tabs';
1+
import {Tabs, TabsList, TabsTrigger} from '@/components/ui/tabs';
32
import {ComponentDefinitionBasic, TaskDispatcherDefinition} from '@/shared/middleware/platform/configuration';
43
import {useFeatureFlagsStore} from '@/shared/stores/useFeatureFlagsStore';
54
import {ClickedDefinitionType} from '@/shared/types';
65
import {useEffect, useMemo, useState} from 'react';
76

8-
import {useComponentFiltering} from '../hooks/useComponentFiltering';
9-
import ActionComponentsFilter from './ActionComponentsFilter';
10-
import WorkflowNodesTabsItem from './WorkflowNodesTabsItem';
7+
import {useComponentFiltering} from '../../hooks/useComponentFiltering';
8+
import ActionComponentsFilter from '../ActionComponentsFilter';
9+
import WorkflowNodesTabContent from './WorkflowNodesTabContent';
1110

1211
type DefinitionType = (ComponentDefinitionBasic | TaskDispatcherDefinition) & {
1312
taskDispatcher: boolean;
@@ -28,46 +27,6 @@ interface WorkflowNodesTabsProps {
2827
triggerComponentDefinitions: Array<ComponentDefinitionBasic>;
2928
}
3029

31-
interface WorkflowNodesTabContentProps {
32-
emptyMessage: string;
33-
items: Array<ComponentDefinitionBasic | DefinitionType> | undefined;
34-
itemsDraggable: boolean;
35-
onItemClick?: (clickedItem: ClickedDefinitionType) => void;
36-
selectedComponentName?: string;
37-
tabValue: string;
38-
}
39-
40-
const WorkflowNodesTabContent = ({
41-
emptyMessage,
42-
items,
43-
itemsDraggable,
44-
onItemClick,
45-
selectedComponentName,
46-
tabValue,
47-
}: WorkflowNodesTabContentProps) => {
48-
return (
49-
<ScrollArea className="overflow-y-auto px-3">
50-
<TabsContent className="mt-0 w-full flex-1" value={tabValue}>
51-
<ul className="space-y-2" role="list">
52-
{(!items || items.length === 0) && (
53-
<span className="block px-3 py-2 text-xs text-content-neutral-secondary">{emptyMessage}</span>
54-
)}
55-
56-
{items?.map((item) => (
57-
<WorkflowNodesTabsItem
58-
draggable={itemsDraggable}
59-
handleClick={() => onItemClick && onItemClick(item as ClickedDefinitionType)}
60-
key={item.name}
61-
node={item as DefinitionType}
62-
selected={tabValue === 'components' ? selectedComponentName === item.name : undefined}
63-
/>
64-
))}
65-
</ul>
66-
</TabsContent>
67-
</ScrollArea>
68-
);
69-
};
70-
7130
const WorkflowNodesTabs = ({
7231
actionComponentDefinitions,
7332
clusterElementComponentDefinitions,

client/src/pages/platform/workflow-editor/components/WorkflowNodesTabsItem.tsx renamed to client/src/pages/platform/workflow-editor/components/workflow-nodes-tabs/WorkflowNodesTabsItem.tsx

File renamed without changes.

client/src/shared/types.ts

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -80,6 +80,11 @@ export type ComponentType = {
8080
workflowNodeName: string;
8181
};
8282

83+
export type DefinitionType = (ComponentDefinitionBasic | TaskDispatcherDefinition) & {
84+
taskDispatcher: boolean;
85+
trigger: boolean;
86+
};
87+
8388
export type ClickedDefinitionType = {
8489
taskDispatcher?: boolean;
8590
trigger?: boolean;

0 commit comments

Comments
 (0)