showDesktopDialog<T> function
Future<T?>
showDesktopDialog<T>({
- required BuildContext context,
- required SheetContent content,
- double borderRadius = 30,
- Color? bgColor,
Implementation
Future<T?> showDesktopDialog<T>({
required BuildContext context,
required SheetContent content,
double borderRadius = 30,
Color? bgColor,
}) {
final theme = Theme.of(context);
return showGeneralDialog<T>(
context: context,
barrierDismissible: true,
barrierLabel: MaterialLocalizations.of(context).modalBarrierDismissLabel,
barrierColor: Colors.black54,
transitionDuration: const Duration(milliseconds: 300),
pageBuilder: (_, __, ___) {
return Align(
alignment: Alignment.bottomCenter,
child: Material(
color: bgColor ?? theme.dialogBackgroundColor,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.vertical(
top: Radius.circular(borderRadius),
),
),
child: ConstrainedBox(
constraints: const BoxConstraints(maxWidth: 500),
child: content,
),
),
);
},
transitionBuilder: (_, animation, __, child) {
final offset = Tween<Offset>(
begin: const Offset(0, 1),
end: Offset.zero,
).animate(CurvedAnimation(parent: animation, curve: Curves.easeOutCubic));
return SlideTransition(position: offset, child: child);
},
);
}