73 lines
2.0 KiB
Dart
73 lines
2.0 KiB
Dart
import 'package:flutter/material.dart';
|
|
import 'package:get_it/get_it.dart';
|
|
|
|
import '../models/jellyfin_models.dart';
|
|
import '../services/downloads_helper.dart';
|
|
import 'error_snackbar.dart';
|
|
|
|
class ConfirmationPromptDialog extends AlertDialog {
|
|
const ConfirmationPromptDialog({
|
|
Key? key,
|
|
required this.promptText,
|
|
required this.confirmButtonText,
|
|
required this.abortButtonText,
|
|
required this.onConfirmed,
|
|
required this.onAborted,
|
|
}) : super(key: key);
|
|
|
|
final String promptText;
|
|
final String confirmButtonText;
|
|
final String abortButtonText;
|
|
final void Function()? onConfirmed;
|
|
final void Function()? onAborted;
|
|
|
|
|
|
@override
|
|
Widget build(BuildContext context) {
|
|
return AlertDialog(
|
|
buttonPadding: const EdgeInsets.all(0.0),
|
|
contentPadding: const EdgeInsets.all(0.0),
|
|
insetPadding: const EdgeInsets.all(32.0),
|
|
actionsPadding: const EdgeInsets.all(0.0),
|
|
actionsAlignment: MainAxisAlignment.spaceAround,
|
|
actionsOverflowAlignment: OverflowBarAlignment.center,
|
|
actionsOverflowDirection: VerticalDirection.up,
|
|
title: Text(
|
|
promptText,
|
|
style: const TextStyle(fontSize: 18),
|
|
),
|
|
actions: [
|
|
Container(
|
|
constraints: const BoxConstraints(
|
|
maxWidth: 150.0,
|
|
),
|
|
child: TextButton(
|
|
child: Text(abortButtonText,
|
|
textAlign: TextAlign.center,
|
|
),
|
|
onPressed: () {
|
|
Navigator.of(context).pop();
|
|
onAborted?.call();
|
|
},
|
|
),
|
|
),
|
|
Container(
|
|
constraints: const BoxConstraints(
|
|
maxWidth: 150.0,
|
|
),
|
|
child: TextButton(
|
|
child: Text(confirmButtonText,
|
|
textAlign: TextAlign.center,
|
|
softWrap: true,
|
|
),
|
|
onPressed: () {
|
|
Navigator.of(context).pop(); // Close the dialog
|
|
onConfirmed?.call();
|
|
},
|
|
),
|
|
),
|
|
],
|
|
);
|
|
}
|
|
}
|