add controlX feature
This commit is contained in:
parent
9928919f6d
commit
df1e6a4600
4 changed files with 32 additions and 4 deletions
|
|
@ -107,6 +107,13 @@ export default function Page({
|
|||
) {
|
||||
event.preventDefault();
|
||||
setLastCopiedSelection(_.cloneDeep(lastSelection));
|
||||
} else if (
|
||||
(event.ctrlKey || event.metaKey) &&
|
||||
event.key === "x" &&
|
||||
lastSelection
|
||||
) {
|
||||
event.preventDefault();
|
||||
setLastCopiedSelection(_.cloneDeep(lastSelection), true);
|
||||
} else if (
|
||||
(event.ctrlKey || event.metaKey) &&
|
||||
event.key === "v" &&
|
||||
|
|
|
|||
|
|
@ -247,7 +247,29 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
|
|||
});
|
||||
get().setEdges(newEdges);
|
||||
},
|
||||
setLastCopiedSelection: (newSelection) => {
|
||||
setLastCopiedSelection: (newSelection, isCrop = false) => {
|
||||
if (isCrop) {
|
||||
const nodesIdsSelected = newSelection!.nodes.map((node) => node.id);
|
||||
const edgesIdsSelected = newSelection!.edges.map((edge) => edge.id);
|
||||
|
||||
nodesIdsSelected.forEach((id) => {
|
||||
get().deleteNode(id);
|
||||
});
|
||||
|
||||
edgesIdsSelected.forEach((id) => {
|
||||
get().deleteEdge(id);
|
||||
});
|
||||
|
||||
const newNodes = get().nodes.filter(
|
||||
(node) => !nodesIdsSelected.includes(node.id)
|
||||
);
|
||||
const newEdges = get().edges.filter(
|
||||
(edge) => !edgesIdsSelected.includes(edge.id)
|
||||
);
|
||||
|
||||
set({ nodes: newNodes, edges: newEdges });
|
||||
}
|
||||
|
||||
set({ lastCopiedSelection: newSelection });
|
||||
},
|
||||
cleanFlow: () => {
|
||||
|
|
|
|||
|
|
@ -46,7 +46,8 @@ export type FlowStoreType = {
|
|||
) => void;
|
||||
lastCopiedSelection: { nodes: any; edges: any } | null;
|
||||
setLastCopiedSelection: (
|
||||
newSelection: { nodes: any; edges: any } | null
|
||||
newSelection: { nodes: any; edges: any } | null,
|
||||
isCrop?: boolean
|
||||
) => void;
|
||||
isBuilt: boolean;
|
||||
setIsBuilt: (isBuilt: boolean) => void;
|
||||
|
|
|
|||
|
|
@ -141,8 +141,6 @@ export function groupByFamily(
|
|||
})))
|
||||
);
|
||||
};
|
||||
console.log(flow);
|
||||
|
||||
if (flow) {
|
||||
// se existir o flow
|
||||
for (const node of flow) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue