pushWithRippleEffect<T> static method

Future<T?> pushWithRippleEffect<T>(
  1. Widget? screen, {
  2. BuildContext? context,
  3. AlignmentGeometry? alignment,
  4. Offset offset = const Offset(0, 0),
  5. int durationMs = Nav.defaultDurationMs,
})

Push screen with Ripple Effect (Default: bottomRight to topLeft, You can change the alignment and offset)

If you provide context, you can nest navigate in your specific context

Implementation

static Future<T?> pushWithRippleEffect<T>(
  Widget? screen, {
  BuildContext? context,
  AlignmentGeometry? alignment,
  Offset offset = const Offset(0, 0),
  int durationMs = Nav.defaultDurationMs,
}) async {
  if (screen == null) {
    return null;
  }

  final height = MediaQuery.of(navigatorState(context)!.context).size.height;
  final width = MediaQuery.of(navigatorState(context)!.context).size.width;

  return navigatorState(context)?.push(
    RoundRevealRoute(screen,
        maxRadius: height + width / 2,
        centerAlignment: (alignment == null && offset == const Offset(0, 0))
            ? Alignment.bottomRight
            : alignment,
        centerOffset: offset,
        minRadius: 10,
        durationMs: durationMs),
  );
}