showPicker<K, V> function
Future<KeyedOption<K, V> ?>
showPicker<K, V>(
- BuildContext context, {
- dynamic title,
- dynamic content,
- required Set<
KeyedOption< options,K, V> > - dynamic extraOptions,
Implementation
Future<KeyedOption<K, V>?> showPicker<K, V>(
BuildContext context, {
title,
content,
required Set<KeyedOption<K, V>> options,
extraOptions,
}) async {
final intl = SunnyIntl.of(context);
options = options.toSet();
return await showPlatformBottomSheet<KeyedOption<K, V>>(
context: context,
extraOptions: extraOptions,
builder: (context) => PlatformBottomSheet(
title: textOrNull(title),
content: textOrNull(content),
actions: [
...options.map(
(KeyedOption<K, V> option) {
return PlatformBottomSheetAction(
child: textOrNull(option.label)!,
subtitle: textOrNull(
option.subtitle?.first,
maxLines: 2,
wrap: true,
),
leading: (option.icon is IconData)
? iconOrNull(option.icon as IconData?)
: (option.icon as Widget?),
onPressed: () => Navigator.pop(context, option),
);
},
),
],
cancelButton: PlatformBottomSheetAction(
isDefaultAction: true,
child: Text(intl!.cancelLabel),
ios: (_, target) =>
CupertinoBottomSheetActionData(isDefaultAction: true),
onPressed: () => Navigator.pop(context),
),
),
);
}