findParentOf function
Find parent + child-index of node id.
If the node is a root child, returns (parent: null, index: i).
Implementation
ParentRef? findParentOf(CanvasSceneDocument doc, NodeId id) {
for (var i = 0; i < doc.children.length; i++) {
if (doc.children[i].id == id) {
return (parent: null, index: i);
}
}
ParentRef? walk(Node parent) {
final kids = parent.childrenOrEmpty;
for (var i = 0; i < kids.length; i++) {
final c = kids[i];
if (c.id == id) return (parent: parent, index: i);
if (c.isGroup) {
final deeper = walk(c);
if (deeper != null) return deeper;
}
}
return null;
}
for (final c in doc.children) {
if (!c.isGroup) continue;
final r = walk(c);
if (r != null) return r;
}
return null;
}