From e7c37fea4f349c09b831d0f5d1b1d16adbace119 Mon Sep 17 00:00:00 2001 From: igorrCarvalho Date: Tue, 27 Feb 2024 21:05:09 -0300 Subject: [PATCH] Feat: Add Ctrl D and Ctrl P keyboard shortcuts --- .../components/PageComponent/index.tsx | 22 +++++++++++++++++++ 1 file changed, 22 insertions(+) diff --git a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx index ba12a25ea..8c3f99c46 100644 --- a/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx +++ b/src/frontend/src/pages/FlowPage/components/PageComponent/index.tsx @@ -87,8 +87,30 @@ export default function Page({ const [lastSelection, setLastSelection] = useState(null); + const setNode = useFlowStore((state) => state.setNode); useEffect(() => { const onKeyDown = (event: KeyboardEvent) => { + const selectedNode = nodes.filter((obj) => obj.selected); + if ((event.ctrlKey || event.metaKey) && event.key === "p" && selectedNode.length > 0) { + event.preventDefault(); + setNode(selectedNode[0].id, (old) => ({ + ...old, + data: { + ...old.data, + node: { + ...old.data.node, + pinned: old.data?.node?.pinned ? false : true, + }, + }, + })); + } + if ((event.ctrlKey || event.metaKey) && event.key === "d" && selectedNode.length > 0) { + event.preventDefault(); + paste({nodes: selectedNode, edges: []}, { + x: position.current.x, + y: position.current.y, + }); + } if (!isWrappedWithClass(event, "noundo")) { if ( (event.key === "y" || (event.key === "z" && event.shiftKey)) &&