Skip to content

Commit 485d2c4

Browse files
committed
3314 client - Add button for default text action, avoid usually one unnecessary one click
1 parent bec50d8 commit 485d2c4

1 file changed

Lines changed: 61 additions & 24 deletions

File tree

client/src/pages/platform/workflow-editor/components/node-details-tabs/output-tab/OutputSchemaDisplay.tsx

Lines changed: 61 additions & 24 deletions
Original file line numberDiff line numberDiff line change
@@ -1,9 +1,16 @@
11
import {Button} from '@/components/ui/button';
2-
import {DropdownMenu, DropdownMenuContent, DropdownMenuItem, DropdownMenuTrigger} from '@/components/ui/dropdown-menu';
2+
import {ButtonGroup} from '@/components/ui/button-group';
3+
import {
4+
DropdownMenu,
5+
DropdownMenuContent,
6+
DropdownMenuGroup,
7+
DropdownMenuItem,
8+
DropdownMenuTrigger,
9+
} from '@/components/ui/dropdown-menu';
310
import PropertyField from '@/pages/platform/workflow-editor/components/PropertyField';
411
import SchemaProperties from '@/pages/platform/workflow-editor/components/SchemaProperties';
512
import {PropertyAllType} from '@/shared/types';
6-
import {ChevronDownIcon, PenIcon} from 'lucide-react';
13+
import {MoreHorizontalIcon} from 'lucide-react';
714

815
interface OutputSchemaDisplayProps {
916
connectionMissing: boolean;
@@ -40,33 +47,63 @@ const OutputSchemaDisplay = ({
4047
<div className="mb-2 flex items-center justify-between">
4148
<h3 className="text-sm text-gray-500">Output Schema</h3>
4249

43-
<DropdownMenu>
44-
<DropdownMenuTrigger asChild>
45-
<Button disabled={saveWorkflowNodeTestOutputMutation.isPending} size="sm" variant="outline">
46-
<PenIcon /> Define <ChevronDownIcon className="ml-0.5" />
50+
<ButtonGroup>
51+
{!variablePropertiesDefined && (
52+
<Button
53+
disabled={connectionMissing || saveWorkflowNodeTestOutputMutation.isPending}
54+
onClick={handleTestOperationClick}
55+
variant="outline"
56+
>
57+
{`Test ${currentNode.trigger ? 'Trigger' : 'Action'}`}
4758
</Button>
48-
</DropdownMenuTrigger>
59+
)}
4960

50-
<DropdownMenuContent align="end" className="w-60 cursor-pointer">
51-
{!variablePropertiesDefined && (
52-
<DropdownMenuItem
53-
className="cursor-pointer"
54-
disabled={connectionMissing}
55-
onClick={handleTestOperationClick}
61+
{variablePropertiesDefined && (
62+
<Button
63+
disabled={saveWorkflowNodeTestOutputMutation.isPending}
64+
onClick={() => setShowUploadDialog(true)}
65+
variant="outline"
66+
>
67+
Upload Sample Output
68+
</Button>
69+
)}
70+
71+
<DropdownMenu>
72+
<DropdownMenuTrigger asChild>
73+
<Button
74+
aria-label="More Options"
75+
asChild
76+
disabled={saveWorkflowNodeTestOutputMutation.isPending}
77+
size="icon"
78+
variant="outline"
5679
>
57-
{`Test ${currentNode.trigger ? 'Trigger' : 'Action'}`}
58-
</DropdownMenuItem>
59-
)}
80+
<span>
81+
<MoreHorizontalIcon />
82+
</span>
83+
</Button>
84+
</DropdownMenuTrigger>
6085

61-
<DropdownMenuItem className="cursor-pointer" onClick={() => setShowUploadDialog(true)}>
62-
Upload Sample Output Data
63-
</DropdownMenuItem>
86+
<DropdownMenuContent align="end" className="w-52">
87+
<DropdownMenuGroup>
88+
{!variablePropertiesDefined && (
89+
<DropdownMenuItem
90+
className="cursor-pointer"
91+
onClick={() => setShowUploadDialog(true)}
92+
>
93+
Upload Sample Output
94+
</DropdownMenuItem>
95+
)}
6496

65-
<DropdownMenuItem className="cursor-pointer" onClick={handlePredefinedOutputSchemaClick}>
66-
Reset
67-
</DropdownMenuItem>
68-
</DropdownMenuContent>
69-
</DropdownMenu>
97+
<DropdownMenuItem
98+
className="cursor-pointer"
99+
onClick={handlePredefinedOutputSchemaClick}
100+
>
101+
Reset
102+
</DropdownMenuItem>
103+
</DropdownMenuGroup>
104+
</DropdownMenuContent>
105+
</DropdownMenu>
106+
</ButtonGroup>
70107
</div>
71108

72109
<PropertyField

0 commit comments

Comments
 (0)