Ver Fonte

add transitionDuration to FluroRouter.define

lukepighetti há 5 anos atrás
pai
commit
76d9a0e950
2 ficheiros alterados com 13 adições e 7 exclusões
  1. 3 1
      lib/src/common.dart
  2. 10 6
      lib/src/fluro_router.dart

+ 3 - 1
lib/src/common.dart

@@ -35,7 +35,9 @@ class AppRoute {
   String route;
   String route;
   dynamic handler;
   dynamic handler;
   TransitionType transitionType;
   TransitionType transitionType;
-  AppRoute(this.route, this.handler, {this.transitionType});
+  Duration transitionDuration;
+  AppRoute(this.route, this.handler,
+      {this.transitionType, this.transitionDuration});
 }
 }
 
 
 enum TransitionType {
 enum TransitionType {

+ 10 - 6
lib/src/fluro_router.dart

@@ -26,9 +26,13 @@ class FluroRouter {
 
 
   /// Creates a [PageRoute] definition for the passed [RouteHandler]. You can optionally provide a default transition type.
   /// Creates a [PageRoute] definition for the passed [RouteHandler]. You can optionally provide a default transition type.
   void define(String routePath,
   void define(String routePath,
-      {@required Handler handler, TransitionType transitionType}) {
+      {@required Handler handler,
+      TransitionType transitionType,
+      Duration transitionDuration = const Duration(milliseconds: 250)}) {
     _routeTree.addRoute(
     _routeTree.addRoute(
-      AppRoute(routePath, handler, transitionType: transitionType),
+      AppRoute(routePath, handler,
+          transitionType: transitionType,
+          transitionDuration: transitionDuration),
     );
     );
   }
   }
 
 
@@ -46,7 +50,7 @@ class FluroRouter {
       {bool replace = false,
       {bool replace = false,
       bool clearStack = false,
       bool clearStack = false,
       TransitionType transition,
       TransitionType transition,
-      Duration transitionDuration = const Duration(milliseconds: 250),
+      Duration transitionDuration,
       RouteTransitionsBuilder transitionBuilder,
       RouteTransitionsBuilder transitionBuilder,
       RouteSettings routeSettings}) {
       RouteSettings routeSettings}) {
     RouteMatch routeMatch = matchRoute(context, path,
     RouteMatch routeMatch = matchRoute(context, path,
@@ -100,7 +104,7 @@ class FluroRouter {
   RouteMatch matchRoute(BuildContext buildContext, String path,
   RouteMatch matchRoute(BuildContext buildContext, String path,
       {RouteSettings routeSettings,
       {RouteSettings routeSettings,
       TransitionType transitionType,
       TransitionType transitionType,
-      Duration transitionDuration = const Duration(milliseconds: 250),
+      Duration transitionDuration,
       RouteTransitionsBuilder transitionsBuilder}) {
       RouteTransitionsBuilder transitionsBuilder}) {
     RouteSettings settingsToUse = routeSettings;
     RouteSettings settingsToUse = routeSettings;
     if (routeSettings == null) {
     if (routeSettings == null) {
@@ -181,10 +185,10 @@ class FluroRouter {
           },
           },
           transitionDuration: transition == TransitionType.none
           transitionDuration: transition == TransitionType.none
               ? Duration.zero
               ? Duration.zero
-              : transitionDuration,
+              : transitionDuration ?? route.transitionDuration,
           reverseTransitionDuration: transition == TransitionType.none
           reverseTransitionDuration: transition == TransitionType.none
               ? Duration.zero
               ? Duration.zero
-              : transitionDuration,
+              : transitionDuration ?? route.transitionDuration,
           transitionsBuilder: transition == TransitionType.none
           transitionsBuilder: transition == TransitionType.none
               ? (_, __, ___, child) => child
               ? (_, __, ___, child) => child
               : routeTransitionsBuilder,
               : routeTransitionsBuilder,