SendTrain/lib/widgets/builders/dialogs.dart
2024-12-27 15:59:09 -05:00

47 lines
1.5 KiB
Dart

import 'package:flutter/material.dart';
import 'package:sendtrain/database/database.dart';
import 'package:sendtrain/widgets/sessions/session_view.dart';
Future showSessionDialog(Session session, BuildContext parentContext) {
return showGeneralDialog(
barrierColor: Colors.black.withOpacity(0.5),
transitionDuration: const Duration(milliseconds: 220),
transitionBuilder: (BuildContext context, Animation<double> animation,
Animation<double> secondaryAnimation, Widget child) {
Animation<Offset> custom = Tween<Offset>(
begin: const Offset(0.0, 1.0), end: const Offset(0.0, 0.0))
.animate(animation);
return SlideTransition(
position: custom,
child: Dialog.fullscreen(child: SessionView(session: session)));
},
barrierDismissible: true,
barrierLabel: '',
context: parentContext,
pageBuilder: (context, animation1, animation2) {
return Container();
});
}
Future showRemovalDialog(title, content, context, dao, session) {
return showAdaptiveDialog(
context: context,
builder: (BuildContext context) => AlertDialog(
title: Text(title),
content: Text(content),
actions: <Widget>[
TextButton(
onPressed: () => {
Navigator.pop(context, 'Cancel'),
},
child: const Text('Cancel'),
),
TextButton(
onPressed: () => {dao.remove(session), Navigator.pop(context, 'OK')},
child: const Text('OK'),
),
],
),
);
}