myNavigator function

void myNavigator(
  1. BuildContext context,
  2. Widget page, {
  3. bool? replace,
  4. Duration? delay,
  5. bool? removeAllPreviousPagesFromStack,
})

Implementation

void myNavigator(BuildContext context, Widget page,
    {bool? replace,
    Duration? delay,
    bool? removeAllPreviousPagesFromStack}) async {
  if (delay != null) await Future.delayed(delay, () {});

  if (replace != null && replace) {
    Navigator.pushReplacement(
      context,
      MaterialPageRoute(builder: (context) => page),
    );
    return;
  }
  if (removeAllPreviousPagesFromStack != null &&
      removeAllPreviousPagesFromStack == true) {
    Navigator.pushAndRemoveUntil(
      context,
      MaterialPageRoute(builder: (context) => page),
      (Route<dynamic> route) => false,
    );
  }

  Navigator.push(
    context,
    MaterialPageRoute(builder: (context) => page),
  );
}