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