to static method

Future to(
  1. BuildContext context,
  2. Widget destination, {
  3. WeeNavigateStyle style = WeeNavigateStyle.auto,
  4. String? name,
  5. bool maintainState = true,
  6. bool full = false,
  7. bool removeUntil = false,
  8. bool replace = false,
  9. RouteSettings? settings,
  10. Object? arguments,
})

Implementation

static Future<dynamic> to(
  BuildContext context,
  Widget destination, {
  WeeNavigateStyle style = WeeNavigateStyle.auto,
  String? name,
  bool maintainState = true,
  bool full = false,
  bool removeUntil = false,
  bool replace = false,
  RouteSettings? settings,
  Object? arguments,
}) {
  late Route route;
  if (style == WeeNavigateStyle.auto) {
    if (Platform.isIOS) {
      route = CupertinoPageRoute(
        builder: (_) => destination,
        maintainState: maintainState,
        settings: settings ?? RouteSettings(name: name, arguments: arguments),
        fullscreenDialog: full,
      );
    } else {
      route = MaterialPageRoute(
        builder: (_) => destination,
        maintainState: maintainState,
        settings: settings ?? RouteSettings(name: name, arguments: arguments),
        fullscreenDialog: full,
      );
    }
  }

  if (style == WeeNavigateStyle.material) {
    route = MaterialPageRoute(
      builder: (_) => destination,
      maintainState: maintainState,
      settings: settings ?? RouteSettings(name: name, arguments: arguments),
      fullscreenDialog: full,
    );
  }

  if (style == WeeNavigateStyle.cupertino) {
    route = CupertinoPageRoute(
      builder: (_) => destination,
      maintainState: maintainState,
      settings: settings ?? RouteSettings(name: name, arguments: arguments),
      fullscreenDialog: full,
    );
  }

  if (removeUntil && replace) {
    throw "removeUntil and replace can\'t be same value";
  }

  if (removeUntil) {
    return Navigator.pushAndRemoveUntil(
        context, route, (Route<dynamic> r) => false);
  } else if (replace) {
    return Navigator.pushReplacement(context, route);
  } else {
    return Navigator.push(context, route);
  }
}