singleSelection<T extends DropdownItem> static method
Opens a single-select picker and returns the chosen item.
Returns initialSelected if the sheet is dismissed without tapping Done.
Implementation
static Future<T?> singleSelection<T extends DropdownItem>({
required BuildContext context,
required List<T> items,
T? initialSelected,
bool canUnselect = false,
String emptyMessage = 'No items available',
String singleSelectTitle = 'Select',
String doneLabel = 'Done',
}) async {
var donePressed = false;
final result = await showModalBottomSheet<T?>(
context: context,
isScrollControlled: true,
backgroundColor: Colors.transparent,
builder: (_) => GenericPickerSheet<T>(
items: items,
initialSelected: initialSelected != null ? [initialSelected] : [],
multiSelect: false,
canUnselectRadio: canUnselect,
emptyMessage: emptyMessage,
singleSelectTitle: singleSelectTitle,
doneLabel: doneLabel,
onDonePressed: () => donePressed = true,
),
);
if (!donePressed) return initialSelected;
return result;
}