showFeedbackBottomSheet function

Future showFeedbackBottomSheet({
  1. required BuildContext context,
  2. required String modalContent,
  3. required String imageAssetPath,
})

Implementation

Future<dynamic> showFeedbackBottomSheet({
  required BuildContext context,
  required String modalContent,
  required String imageAssetPath,
}) {
  return showModalBottomSheet(
      context: context,
      backgroundColor: Colors.transparent,
      barrierColor: Colors.transparent,
      isScrollControlled: true,
      builder: (BuildContext context) {
        return Container(
          key: infoBottomSheetKey,
          padding: MediaQuery.viewInsetsOf(context),
          child: Container(
            decoration: BoxDecoration(
              color: Colors.white,
              borderRadius: const BorderRadius.all(Radius.circular(20)),
              boxShadow: <BoxShadow>[
                BoxShadow(
                  color: Colors.grey.withValues(alpha: 0.5),
                  spreadRadius: 2,
                  blurRadius: 5,
                  offset: const Offset(0, 3),
                ),
              ],
            ),
            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(
                      crossAxisAlignment: CrossAxisAlignment.start,
                      children: <Widget>[
                        GestureDetector(
                          child: SvgPicture.asset(
                            imageAssetPath,
                            height: 34.0,
                            width: 34.0,
                          ),
                        ),
                        mediumHorizontalSizedBox,
                        Flexible(
                            child: Text(
                          modalContent,
                          style: defaultTextTheme.bodySmall,
                        )),
                      ],
                    ),
                  ),
                  smallHorizontalSizedBox,
                  Container(
                    margin: const EdgeInsets.only(top: 4),
                    child: GestureDetector(
                      onTap: () => Navigator.pop(context),
                      child: const Image(
                        key: closeBottomSheetKey,
                        image: AssetImage(closeIconUrl),
                        color: Colors.black54,
                        height: 16.0,
                        width: 16.0,
                      ),
                    ),
                  ),
                ],
              ),
            ),
          ),
        );
      });
}