get<N extends Node> static method
Resolves the given original node.
If the node is overridden in an ancestor SignalScope, returns the overridden instance.
Otherwise, returns original.
Implementation
static N get<N extends Node>(BuildContext context, N original) {
N? resolved;
(context as Element).visitAncestorElements((ancestor) {
final widget = ancestor.widget;
if (widget is! SignalScope) return true;
// Register against every traversed scope so adding an override to a
// nearer scope also rebuilds the consumer.
context.dependOnInheritedElement(ancestor as InheritedElement);
final override = widget.overrides[original];
if (override == null) return true;
resolved = override as N;
return false;
});
if (resolved != null) {
return resolved!;
}
return original;
}