refactor: tracking updates for deleted nodes (#4027)

* tracking updates for deleted nodes

* [autofix.ci] apply automated fixes

---------

Co-authored-by: autofix-ci[bot] <114827586+autofix-ci[bot]@users.noreply.github.com>
This commit is contained in:
Mike Fortman 2024-10-09 12:38:51 -05:00 • committed by GitHub
commit 4a745aae5d
No known key found for this signature in database
GPG key ID: B5690EEEBB952194
2 changed files with 28 additions and 8 deletions

View file

@ -345,7 +345,9 @@ export default function Page({ view }: { view?: boolean }): JSX.Element {
track("Component Connection Deleted"); track("Component Connection Deleted");
} }
if (lastSelection.nodes?.length) { if (lastSelection.nodes?.length) {
track("Component Deleted"); lastSelection.nodes.forEach((n) => {
track("Component Deleted", { componentType: n.data.type });
});
} }
deleteNode(lastSelection.nodes.map((node) => node.id)); deleteNode(lastSelection.nodes.map((node) => node.id));
deleteEdge(lastSelection.edges.map((edge) => edge.id)); deleteEdge(lastSelection.edges.map((edge) => edge.id));

View file

@ -269,14 +269,32 @@ const useFlowStore = create<FlowStoreType>((set, get) => ({
return get().nodes.find((node) => node.id === id); return get().nodes.find((node) => node.id === id);
}, },
deleteNode: (nodeId) => { deleteNode: (nodeId) => {
get().setNodes( const { filteredNodes, deletedNode } = get().nodes.reduce<{
get().nodes.filter((node) => filteredNodes: Node[];
typeof nodeId === "string" deletedNode: Node | null;
? node.id !== nodeId }>(
: !nodeId.includes(node.id), (acc, node) => {
), const isMatch =
typeof nodeId === "string"
? node.id === nodeId
: nodeId.includes(node.id);
if (isMatch) {
acc.deletedNode = node;
} else {
acc.filteredNodes.push(node);
}
return acc;
},
{ filteredNodes: [], deletedNode: null },
); );
track("Component Deleted", { nodeId });
get().setNodes(filteredNodes);
if (deletedNode) {
track("Component Deleted", { componentType: deletedNode.data.type });
}
}, },
deleteEdge: (edgeId) => { deleteEdge: (edgeId) => {
get().setEdges( get().setEdges(