showOptionsChooseDialog<T> static method

Future<T?> showOptionsChooseDialog<T>({
  1. required String title,
  2. required String content,
  3. required List<T> options,
  4. T? defaultOption,
  5. dynamic itemBuilder(
    1. T
    )?,
  6. VoidCallback? onConfirm,
  7. 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!;
}