|
1 | 1 | 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'; |
3 | 10 | import PropertyField from '@/pages/platform/workflow-editor/components/PropertyField'; |
4 | 11 | import SchemaProperties from '@/pages/platform/workflow-editor/components/SchemaProperties'; |
5 | 12 | import {PropertyAllType} from '@/shared/types'; |
6 | | -import {ChevronDownIcon, PenIcon} from 'lucide-react'; |
| 13 | +import {MoreHorizontalIcon} from 'lucide-react'; |
7 | 14 |
|
8 | 15 | interface OutputSchemaDisplayProps { |
9 | 16 | connectionMissing: boolean; |
@@ -40,33 +47,63 @@ const OutputSchemaDisplay = ({ |
40 | 47 | <div className="mb-2 flex items-center justify-between"> |
41 | 48 | <h3 className="text-sm text-gray-500">Output Schema</h3> |
42 | 49 |
|
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'}`} |
47 | 58 | </Button> |
48 | | - </DropdownMenuTrigger> |
| 59 | + )} |
49 | 60 |
|
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" |
56 | 79 | > |
57 | | - {`Test ${currentNode.trigger ? 'Trigger' : 'Action'}`} |
58 | | - </DropdownMenuItem> |
59 | | - )} |
| 80 | + <span> |
| 81 | + <MoreHorizontalIcon /> |
| 82 | + </span> |
| 83 | + </Button> |
| 84 | + </DropdownMenuTrigger> |
60 | 85 |
|
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 | + )} |
64 | 96 |
|
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> |
70 | 107 | </div> |
71 | 108 |
|
72 | 109 | <PropertyField |
|
0 commit comments