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();
|
event.preventDefault();
|
||||||
setLastCopiedSelection(_.cloneDeep(lastSelection));
|
setLastCopiedSelection(_.cloneDeep(lastSelection));
|
||||||
|
} else if (
|
||||||
|
(event.ctrlKey || event.metaKey) &&
|
||||||
|
event.key === "x" &&
|
||||||
|
lastSelection
|
||||||
|
) {
|
||||||
|
event.preventDefault();
|
||||||
|
setLastCopiedSelection(_.cloneDeep(lastSelection), true);
|
||||||
} else if (
|
} else if (
|
||||||
(event.ctrlKey || event.metaKey) &&
|
(event.ctrlKey || event.metaKey) &&
|
||||||
event.key === "v" &&
|
event.key === "v" &&
|
||||||
|
|
|
||||||
|
|
@ -247,7 +247,29 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
|
||||||
});
|
});
|
||||||
get().setEdges(newEdges);
|
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 });
|
set({ lastCopiedSelection: newSelection });
|
||||||
},
|
},
|
||||||
cleanFlow: () => {
|
cleanFlow: () => {
|
||||||
|
|
|
||||||
|
|
@ -46,7 +46,8 @@ export type FlowStoreType = {
|
||||||
) => void;
|
) => void;
|
||||||
lastCopiedSelection: { nodes: any; edges: any } | null;
|
lastCopiedSelection: { nodes: any; edges: any } | null;
|
||||||
setLastCopiedSelection: (
|
setLastCopiedSelection: (
|
||||||
newSelection: { nodes: any; edges: any } | null
|
newSelection: { nodes: any; edges: any } | null,
|
||||||
|
isCrop?: boolean
|
||||||
) => void;
|
) => void;
|
||||||
isBuilt: boolean;
|
isBuilt: boolean;
|
||||||
setIsBuilt: (isBuilt: boolean) => void;
|
setIsBuilt: (isBuilt: boolean) => void;
|
||||||
|
|
|
||||||
|
|
@ -141,8 +141,6 @@ export function groupByFamily(
|
||||||
})))
|
})))
|
||||||
);
|
);
|
||||||
};
|
};
|
||||||
console.log(flow);
|
|
||||||
|
|
||||||
if (flow) {
|
if (flow) {
|
||||||
// se existir o flow
|
// se existir o flow
|
||||||
for (const node of flow) {
|
for (const node of flow) {
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue