showSheet<T> static method

Future<T?> showSheet<T>({
  1. required BuildContext context,
  2. required List<T> items,
  3. required Widget itemBuilder(
    1. T item
    ),
  4. String? title,
})

Helper to show a bottom sheet picker.

Implementation

static Future<T?> showSheet<T>({
  required BuildContext context,
  required List<T> items,
  required Widget Function(T item) itemBuilder,
  String? title,
}) {
  return showCupertinoModalPopup<T>(
    context: context,
    builder: (context) => Container(
      height: 300,
      decoration: BoxDecoration(
        color: CupertinoColors.systemBackground.resolveFrom(context),
        borderRadius: const BorderRadius.vertical(top: Radius.circular(20)),
      ),
      child: Column(
        children: [
          if (title != null)
            Container(
              height: 50,
              alignment: Alignment.center,
              child: Text(title,
                  style: const TextStyle(fontWeight: FontWeight.bold)),
            ),
          Expanded(
            child: CupertinoPicker.builder(
              itemExtent: 40,
              onSelectedItemChanged: (index) {
                // Handle live update if needed
              },
              itemBuilder: (context, index) {
                if (index < 0 || index >= items.length) return null;
                return itemBuilder(items[index]);
              },
              childCount: items.length,
            ),
          ),
        ],
      ),
    ),
  );
}