showNiceBottomSheet<T> function

Future<T?> showNiceBottomSheet<T>({
  1. required BuildContext context,
  2. required WidgetBuilder builder,
  3. String? title,
  4. bool showHandle = true,
  5. List<double> snapPoints = const [0.5, 0.9],
  6. int initialSnap = 0,
  7. bool expandable = true,
  8. bool dismissible = true,
})

Shows a draggable bottom sheet with snap points.

showNiceBottomSheet(
  context: context,
  snapPoints: [0.4, 0.9],
  title: 'Details',
  builder: (ctx) => ListView(...),
);

Implementation

Future<T?> showNiceBottomSheet<T>({
  required BuildContext context,
  required WidgetBuilder builder,
  String? title,
  bool showHandle = true,
  List<double> snapPoints = const [0.5, 0.9],
  int initialSnap = 0,
  bool expandable = true,
  bool dismissible = true,
}) {
  return showModalBottomSheet<T>(
    context: context,
    isScrollControlled: true,
    backgroundColor: Colors.transparent,
    isDismissible: dismissible,
    enableDrag: true,
    builder: (ctx) => _NiceBottomSheetContent(
      title: title,
      showHandle: showHandle,
      snapPoints: snapPoints,
      initialSnap: initialSnap.clamp(0, snapPoints.length - 1),
      expandable: expandable,
      child: builder(ctx),
    ),
  );
}