/* * SPDX-FileCopyrightText: 2020-2021 Roland Fredenhagen * * SPDX-License-Identifier: Apache-2.0 */ import 'package:flutter/material.dart'; class HeroDialogRoute extends PageRoute { HeroDialogRoute({required this.builder}) : super(); final WidgetBuilder builder; @override bool get opaque => false; @override bool get barrierDismissible => true; @override Duration get transitionDuration => const Duration(milliseconds: 200); @override bool get maintainState => true; @override Color get barrierColor => Colors.black54; @override Widget buildTransitions(BuildContext context, Animation animation, Animation secondaryAnimation, Widget child) { return FadeTransition( opacity: CurvedAnimation(parent: animation, curve: Curves.easeOut), child: child); } @override Widget buildPage(BuildContext context, Animation animation, Animation secondaryAnimation) { return builder(context); } @override String get barrierLabel => "close preview"; }