build method

BloomNode build()

Builds and returns the BloomNode descriptor tree for this route match.

If the matched route defines a BloomRoute.loader, this method returns a Suspense node wrapping the loader resource, rendering BloomRoute.loadingFallback while pending and BloomRoute.dataBuilder once resolved.

Implementation

BloomNode build() {
  if (_buildNode != null) return _buildNode();
  final loader = route.loader;
  if (loader != null) {
    return Suspense<dynamic>(
      resource: () => loader(params),
      builder: (data) {
        if (route.dataBuilder != null) return route.dataBuilder!(params, data);
        if (route.builder != null) return route.builder!(params);
        return const FragmentNode([]);
      },
      fallback: route.loadingFallback?.call() ?? const FragmentNode([]),
    );
  }
  if (route.builder != null) return route.builder!(params);
  return const FragmentNode([]);
}