to<T> static method
Push a page on the navigator stack.
Implementation
static Future<T?>? to<T>(
Widget page, {
NeuronPageTransition? transition,
Duration? duration,
Duration? reverseDuration,
Curve? curve,
Curve? reverseCurve,
}) {
final nav = navigatorKey.currentState;
if (nav == null) return null;
if (transition == null) {
return nav.push(MaterialPageRoute(builder: (_) => page));
}
final spec = NeuronTransitionSpec(
duration: duration ?? const Duration(milliseconds: 320),
reverseDuration: reverseDuration ?? const Duration(milliseconds: 280),
curve: curve ?? Curves.easeOutCubic,
reverseCurve: reverseCurve ?? Curves.easeInCubic,
);
return nav.push(
PageRouteBuilder<T>(
pageBuilder: (context, animation, secondaryAnimation) => page,
transitionDuration: spec.duration,
reverseTransitionDuration: spec.reverseDuration,
transitionsBuilder: (context, animation, secondaryAnimation, child) {
final curvedAnimation = CurvedAnimation(
parent: animation,
curve: spec.curve,
reverseCurve: spec.reverseCurve,
);
return NeuronTransitions.build(
transition,
curvedAnimation,
secondaryAnimation,
child,
spec,
);
},
),
);
}