Line data Source code
1 : import 'package:flutter/cupertino.dart'; 2 : import 'package:flutter/material.dart'; 3 : 4 : import '../transitions/transition.dart'; 5 : import 'contextless_navigator.dart'; 6 : import 'meedu_page_route.dart'; 7 : 8 : /// get the transition 9 6 : Route<T> getRoute<T>( 10 : Widget page, { 11 : Object? arguments, 12 : bool maintainState = true, 13 : bool fullscreenDialog = false, 14 : bool backGestureEnabled = true, 15 : Transition? transition, 16 : Duration? transitionDuration, 17 : }) { 18 18 : final name = '/${page.runtimeType.toString()}'; 19 6 : final settings = RouteSettings( 20 : name: name, 21 : arguments: arguments, 22 : ); 23 : 24 8 : final _transition = transition ?? ContextlessNavigator.i.transition; 25 : 26 : final _transitionDuration = 27 10 : transitionDuration ?? ContextlessNavigator.i.transitionDuration; 28 : 29 : switch (_transition) { 30 6 : case Transition.material: 31 4 : return MaterialPageRoute<T>( 32 4 : builder: (_) => page, 33 : maintainState: maintainState, 34 : fullscreenDialog: fullscreenDialog, 35 : settings: settings, 36 : ); 37 3 : case Transition.cupertino: 38 1 : return CupertinoPageRoute<T>( 39 1 : builder: (_) => page, 40 : maintainState: maintainState, 41 : fullscreenDialog: fullscreenDialog, 42 : settings: settings, 43 : ); 44 : 45 : default: 46 3 : return MeeduPageRoute<T>( 47 : child: page, 48 : settings: settings, 49 : maintainState: maintainState, 50 3 : transitionDuration: _transition == Transition.none 51 : ? Duration.zero 52 : : _transitionDuration, 53 : fullscreenDialog: fullscreenDialog, 54 : transition: _transition, 55 : backGestureEnabled: backGestureEnabled, 56 : ); 57 : } 58 : }