Route constructor

Route({
  1. Matcher matcher = const Matcher.any(),
  2. RouteBuilder? builder,
  3. MaterialBuilder? materialBuilder,
  4. CupertinoBuilder? cupertinoBuilder,
  5. List<Route> routes = const [],
})

Implementation

Route({
  this.matcher = const Matcher.any(),
  RouteBuilder? builder,
  MaterialBuilder? materialBuilder,
  CupertinoBuilder? cupertinoBuilder,
  this.routes = const [],
})  : assert(
        [builder, materialBuilder, cupertinoBuilder].whereNotNull().length <=
            1,
        'At most one builder may be provided',
      ),
      builder = <RouteBuilder?>[
        builder,
        if (materialBuilder != null)
          (result) {
            return MaterialPageRoute<dynamic>(
              builder: (context) => materialBuilder(context, result),
              settings: result.settings,
            );
          },
        if (cupertinoBuilder != null)
          (result) {
            return CupertinoPageRoute<dynamic>(
              builder: (context) => cupertinoBuilder(context, result),
              settings: result.settings,
            );
          },
      ].whereNotNull().firstOrNull;