showOptionsChooseDialog<T> static method
Future<T?>
showOptionsChooseDialog<T>({
- required String title,
- required String content,
- required List<
T> options, - T? defaultOption,
- dynamic itemBuilder(
- T
- VoidCallback? onConfirm,
- VoidCallback? onCancel,
Implementation
static Future<T?> showOptionsChooseDialog<T>({
required String title,
required String content,
required List<T> options,
T? defaultOption,
Function(T)? itemBuilder,
VoidCallback? onConfirm,
VoidCallback? onCancel,
}) async {
final ctx = context;
if (ctx == null) return defaultOption;
final result = await showDialog<T>(
context: ctx,
builder: (_) => SimpleDialog(
title: Text(title),
children: options.map((option) {
return SimpleDialogOption(
onPressed: () {
Navigator.of(ctx).pop(option);
},
child: itemBuilder == null
? Text(option.toString())
: itemBuilder(option),
);
}).toList(),
),
);
return result ?? defaultOption!;
}