1
0
mirror of https://gitlab.com/comunic/comunicmobile synced 2024-11-25 14:29:22 +00:00
comunicmobile/lib/ui/dialogs/screen_dialog.dart

43 lines
1.0 KiB
Dart

import 'dart:math';
import 'package:comunic/utils/ui_utils.dart';
import 'package:flutter/material.dart';
/// Screen dialog
///
/// @author Pierre Hubert
/// Show a screen dialog
///
/// This widget automatically adapt himself if we are in tablet
/// or in mobile mode
Future<T?> showScreenDialog<T>(BuildContext context, Widget screen) async {
// TODO : add mobile support
if (!isTablet(context)) throw Exception("Unsupported mode!");
return await showDialog(
context: context, builder: (c) => _ScreenDialog(body: screen));
}
class _ScreenDialog extends StatelessWidget {
final Widget? body;
const _ScreenDialog({Key? key, this.body}) : super(key: key);
@override
Widget build(BuildContext context) {
final size = MediaQuery.of(context).size;
final width = min(500.0, size.width - 50);
final height = min(800.0, size.height - 50);
return AlertDialog(
contentPadding: EdgeInsets.all(0.0),
content: Container(
width: width,
height: height,
child: body,
),
);
}
}