@@ -26,8 +26,8 @@ import {DFlowFolderCreateDialog} from "./DFlowFolderCreateDialog";
2626
2727export interface DFlowFolderContextMenuGroupData {
2828 name : string
29- flows : Flow [ ]
30- type : "group "
29+ flow : Flow [ ]
30+ type : "folder "
3131}
3232
3333export interface DFlowFolderContextMenuItemData {
@@ -49,48 +49,8 @@ export const DFlowFolderContextMenu: React.FC<DFlowFolderContextMenuProps> = (pr
4949 const flowTypeStore = useStore ( DFlowTypeReactiveService )
5050
5151 const flowTypes = React . useMemo ( ( ) => flowTypeService . values ( ) , [ flowTypeStore ] )
52- const [ deleteDialogOpen , setDeleteDialogOpen ] = React . useState ( false )
53- const [ renameDialogOpen , setRenameDialogOpen ] = React . useState ( false )
54- const [ createDialogOpen , setCreateDialogOpen ] = React . useState ( false )
55- const [ flowTypeId , setFlowTypeId ] = React . useState < FlowType [ 'id' ] > ( null )
5652
5753 return < >
58- < Dialog open = { deleteDialogOpen } onOpenChange = { ( open ) => setDeleteDialogOpen ( open ) } >
59- < DialogPortal >
60- < DialogContent autoFocus showCloseButton
61- title = { props . contextData . type == "item" ? "Remove flow" : "Remove folder" } >
62- < Text size = { "md" } hierarchy = { "secondary" } >
63- { props . contextData . type == "item" ? "Are you sure you want to remove flow" : "Are you sure you want to remove folder" } { " " }
64- < Badge color = { "info" } >
65- < Text size = { "md" } style = { { color : "inherit" } } > { props . contextData . name } </ Text >
66- </ Badge > { " " }
67- { props . contextData . type == "group" ? ", all flows and sub-folders inside " : "" } from the this
68- project?
69- </ Text >
70- < Flex justify = { "space-between" } align = { "center" } >
71- < DialogClose asChild >
72- < Button color = { "secondary" } > No, go back!</ Button >
73- </ DialogClose >
74- < DialogClose asChild >
75- < Button color = { "error" } onClick = { ( ) => {
76- if ( props . contextData . type === "item" ) {
77- props . onDelete ?.( props . contextData . flow )
78- } else if ( props . contextData . type === "group" ) {
79- props . contextData . flows . forEach ( flow => {
80- props . onDelete ?.( flow )
81- } )
82- }
83- } } > Yes, remove!</ Button >
84- </ DialogClose >
85- </ Flex >
86- </ DialogContent >
87- </ DialogPortal >
88- </ Dialog >
89-
90- < DFlowFolderRenameDialog onOpenChange = { open => setRenameDialogOpen ( open ) } open = { renameDialogOpen } { ...props } />
91-
92- < DFlowFolderCreateDialog flowTypeId = { flowTypeId } onOpenChange = { open => setCreateDialogOpen ( open ) } open = { createDialogOpen } { ...props } />
93-
9454 < ContextMenu >
9555 < ContextMenuTrigger asChild >
9656 { children }
@@ -107,19 +67,18 @@ export const DFlowFolderContextMenu: React.FC<DFlowFolderContextMenuProps> = (pr
10767 < ContextMenuSubContent >
10868 { flowTypes . map ( flowType => {
10969 return < ContextMenuItem key = { flowType . id } onSelect = { ( ) => {
110- setFlowTypeId ( flowType . id )
111- setCreateDialogOpen ( true )
70+ props . onCreate ?.( flowType . id )
11271 } } >
11372 { flowType . names ?. nodes ! ! [ 0 ] ?. content ?? flowType . id }
11473 </ ContextMenuItem >
11574 } ) }
11675 </ ContextMenuSubContent >
11776 < ContextMenuSeparator />
118- < ContextMenuItem onSelect = { ( ) => setRenameDialogOpen ( true ) } >
77+ < ContextMenuItem onSelect = { ( ) => props . onRename ?. ( props . contextData ) } >
11978 < IconEdit size = { 12 } color = { "purple" } />
12079 < Text > Rename</ Text >
12180 </ ContextMenuItem >
122- < ContextMenuItem onSelect = { ( ) => setDeleteDialogOpen ( true ) } >
81+ < ContextMenuItem onSelect = { ( ) => props . onDelete ?. ( props . contextData ) } >
12382 < IconTrash size = { 12 } color = { "red" } />
12483 < Text > Delete</ Text >
12584 </ ContextMenuItem >
0 commit comments