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");
}
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));
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);
},
deleteNode: (nodeId) => {
get().setNodes(
get().nodes.filter((node) =>
typeof nodeId === "string"
? node.id !== nodeId
: !nodeId.includes(node.id),
),
const { filteredNodes, deletedNode } = get().nodes.reduce<{
filteredNodes: Node[];
deletedNode: Node | null;
}>(
(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) => {
get().setEdges(