wrap method

  1. @override
Widget wrap(
  1. CarpenterShellBuildContext context,
  2. Widget child
)
override

Оборачивает 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);
    },
  );
}