pushRouter static method

Future<PopParam> pushRouter(
  1. BuildContext context,
  2. String path, {
  3. bool replace = false,
  4. bool clearStack = false,
  5. TransitionType transition = TransitionType.inFromBottom,
  6. Map<String, dynamic> params = const {},
})

Implementation

static Future<PopParam> pushRouter(
  BuildContext context,
  String path, {
  bool replace = false,
  bool clearStack = false,
  TransitionType transition = TransitionType.inFromBottom,
  Map<String, dynamic> params = const {},
}) async {
  FocusScope.of(context).requestFocus(FocusNode());
  if (params.isNotEmpty) {
    StringBuffer str = StringBuffer();
    params.forEach((key, value) {
      str
        ..write("&")
        ..write(key)
        ..write('=')
        ..write(value is String ? Uri.encodeComponent(value) : value);
    });
    path = "$path?${str.toString().substring(1)}";
  }

  var result = await Application.router?.navigateTo(
    context,
    path,
    replace: replace,
    clearStack: clearStack,
    transition: transition,
    transitionDuration: const Duration(milliseconds: 300),
  );
  if (result != null && result is PopParam) return result;
  return PopParam(false, null);
}