showInfoBottomSheet function

Future showInfoBottomSheet({
  1. required BuildContext context,
  2. required Widget modalContent,
  3. required String imagePath,
})

Implementation

Future<dynamic> showInfoBottomSheet({
  required BuildContext context,
  required Widget modalContent,
  required String imagePath,
}) async {
  return showModalBottomSheet(
    context: context,
    backgroundColor: Colors.transparent,
    barrierColor: Colors.transparent,
    isScrollControlled: true,
    builder: (BuildContext context) {
      return Container(
        key: AppWidgetKeys.bottomSheetInfoContainer,
        padding: MediaQuery.of(context).viewInsets,
        child: Container(
          decoration: BoxDecoration(
            color: Colors.white,
            borderRadius: const BorderRadius.all(Radius.circular(20)),
            boxShadow: <BoxShadow>[
              BoxShadow(
                color: Colors.grey.withOpacity(0.5),
                spreadRadius: 2,
                blurRadius: 5,
                offset: const Offset(0, 3), // changes position of shadow
              ),
            ],
          ),
          constraints: const BoxConstraints(maxWidth: 420),
          padding: const EdgeInsets.symmetric(vertical: 30, horizontal: 20),
          margin: const EdgeInsets.all(20),
          child: SingleChildScrollView(
            child: Row(
              mainAxisAlignment: MainAxisAlignment.spaceBetween,
              crossAxisAlignment: CrossAxisAlignment.start,
              children: <Widget>[
                Flexible(
                  child: Row(
                    children: <Widget>[
                      GestureDetector(
                        key: AppWidgetKeys.bottomSheetInfoContainerContentKey,
                        onTap: () => Navigator.pop(context),
                        child: Image(
                            image: AssetImage(imagePath),
                            height: 32.0,
                            width: 32.0),
                      ),
                      mediumHorizontalSizedBox,
                      Flexible(child: modalContent),
                    ],
                  ),
                ),
                smallHorizontalSizedBox,
                GestureDetector(
                  key: AppWidgetKeys.closeInfoBottomSheet,
                  onTap: () => Navigator.pop(context),
                  child: const Image(
                    image: AssetImage(closeIconUrl),
                    color: Colors.black54,
                    height: 16.0,
                    width: 16.0,
                  ),
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}