showActionSheet function

Future showActionSheet({
  1. required BuildContext context,
  2. required List<ActionSheetItem> actions,
  3. Widget? cancelButton,
  4. bool hasCancelButton = true,
})

Implementation

Future<dynamic> showActionSheet(
    {required BuildContext context,
    required List<ActionSheetItem> actions,
    Widget? cancelButton,
    bool hasCancelButton = true}) {
  // print(actions);
  return showCupertinoModalPopup(
      context: context,
      builder: (BuildContext context) {
        return CupertinoActionSheet(
          actions: actions
              .map(
                (action) => CupertinoActionSheetAction(
                  onPressed: () async {
                    Navigator.pop(context);
                    action.onPressed();
                  },
                  child: Row(
                    mainAxisSize: MainAxisSize.min,
                    children: [
                      action.icon ?? Container(),
                      const SizedBox(width: 20),
                      Text(action.title),
                    ],
                  ),
                ),
              )
              .toList(),
          cancelButton: hasCancelButton
              ? cancelButton ??
                  CupertinoActionSheetAction(
                    onPressed: () {
                      Navigator.pop(context);
                    },
                    child: const Text('Cancel'),
                  )
              : const SizedBox(),
        );
      });
}