wrap method
Оборачивает widget tree. Визуально shell-и применяются как middleware.
Implementation
@override
Widget wrap(CarpenterShellBuildContext context, Widget child) {
return StreamBuilder<RouteNode?>(
stream: navigation.stream,
initialData: navigation.state,
builder: (buildContext, snapshot) {
final runtime = context.runtime.extend(
CarpenterRouterRuntime(
navigation: navigation,
root: snapshot.data ?? navigation.state,
),
);
return CarpenterRuntimeScope(runtime: runtime, child: child);
},
);
}