Skip to content

Commit d9d74b9

Browse files
committed
feat: refactor DFlowFolderContextMenu to streamline flow management and remove unused dialogs
1 parent f5a5cb1 commit d9d74b9

File tree

1 file changed

+5
-46
lines changed

1 file changed

+5
-46
lines changed

src/components/d-flow-folder/DFlowFolderContextMenu.tsx

Lines changed: 5 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -26,8 +26,8 @@ import {DFlowFolderCreateDialog} from "./DFlowFolderCreateDialog";
2626

2727
export interface DFlowFolderContextMenuGroupData {
2828
name: string
29-
flows: Flow[]
30-
type: "group"
29+
flow: Flow[]
30+
type: "folder"
3131
}
3232

3333
export 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

Comments
 (0)