getRoute<T> function

Route<T> getRoute<T>(
  1. Widget page, {
  2. Object? arguments,
  3. bool maintainState = true,
  4. bool fullscreenDialog = false,
  5. bool backGestureEnabled = true,
  6. Transition? transition,
  7. Duration? transitionDuration,
})

get the transition

Implementation

Route<T> getRoute<T>(
  Widget page, {
  Object? arguments,
  bool maintainState = true,
  bool fullscreenDialog = false,
  bool backGestureEnabled = true,
  Transition? transition,
  Duration? transitionDuration,
}) {
  final name = '/${page.runtimeType.toString()}';
  final settings = RouteSettings(
    name: name,
    arguments: arguments,
  );

  final _transition = transition ?? MeeduNavigator.i.transition;

  final _transitionDuration =
      transitionDuration ?? MeeduNavigator.i.transitionDuration;

  switch (_transition) {
    case Transition.material:
      return MaterialPageRoute<T>(
        builder: (_) => page,
        maintainState: maintainState,
        fullscreenDialog: fullscreenDialog,
        settings: settings,
      );
    case Transition.cupertino:
      return CupertinoPageRoute<T>(
        builder: (_) => page,
        maintainState: maintainState,
        fullscreenDialog: fullscreenDialog,
        settings: settings,
      );

    default:
      return MeeduPageRoute<T>(
        child: page,
        settings: settings,
        maintainState: maintainState,
        transitionDuration: _transition == Transition.none
            ? Duration.zero
            : _transitionDuration,
        fullscreenDialog: fullscreenDialog,
        transition: _transition,
        backGestureEnabled: backGestureEnabled,
      );
  }
}