showNUIBottomSheetForResult<T> static method

Future<T?> showNUIBottomSheetForResult<T>({
  1. required BuildContext context,
  2. bool dismissible = true,
  3. Color? barrierColor,
  4. double opacity = 0.4,
  5. bool isScrollControlled = false,
  6. required BottomSheetBuilder content,
  7. double elevation = 1,
  8. Function? onDismiss,
})

Implementation

static Future<T?> showNUIBottomSheetForResult<T>({required BuildContext context, bool dismissible = true, Color? barrierColor, double opacity = 0.4, bool isScrollControlled = false, required BottomSheetBuilder content, double elevation = 1, Function? onDismiss}) async{
  NUIBottomSheet dialog = NUIBottomSheet._builder(content: content, dismiss: (Function innerDismiss){
    log("NUIBottomSheet -> Dialog dismiss not initiated yet");
  });
  try {
    return await showModalBottomSheet<T>(
      barrierColor: barrierColor ?? Colors.black.withOpacity(opacity ?? 0.4),
      isDismissible: dismissible ?? true,
      backgroundColor: NUIColors.NUITransparent,
      context: context,
      elevation: elevation ?? 0,
      isScrollControlled: isScrollControlled ?? false,
      builder: (context) {
        dialog.dismiss = (Function innerDismiss){
          log("NUIBottomSheet -> Dismissing dialog ... ");
          if(onDismiss != null) {
            onDismiss();
          }
          innerDismiss();
          //Navigator.pop(context);
        };
        return Container(
          height: double.infinity,
          alignment: Alignment.bottomCenter,
          child: content(context),
        );
      },
    );
  }catch(e){}

  return null;
}