patchOrMinorUpdateBottomSheet function

Future<void> patchOrMinorUpdateBottomSheet({
  1. required BuildContext context,
  2. required Widget releaseNotesWidget,
  3. dynamic iconWidget,
  4. required String cancelButtonText,
  5. dynamic updateNowButtonText,
  6. ButtonStyle? updateButtonStyle,
  7. dynamic cancelButtonStyle,
  8. required VoidCallback onTapUpdate,
  9. Color? bgColor,
  10. required TextStyle? titleStyle,
})

Implementation

Future<void> patchOrMinorUpdateBottomSheet ({
  required BuildContext context,
  required Widget releaseNotesWidget, iconWidget,
  required String cancelButtonText, updateNowButtonText,
  ButtonStyle? updateButtonStyle, cancelButtonStyle,
  required VoidCallback onTapUpdate,
  Color? bgColor,
  required TextStyle? titleStyle
}) async {
  await showModalBottomSheet(
    context: context,
    useSafeArea: true,
    isScrollControlled: true,
    constraints: BoxConstraints(maxHeight: MediaQuery.of(context).size.height*0.6),
    builder: (BuildContext context) {
      return Container(
        padding: const EdgeInsets.symmetric(horizontal: 20, vertical: 12),
        decoration: BoxDecoration(
            color: bgColor,
            borderRadius: const BorderRadius.only(
              topLeft: Radius.circular(20),
              topRight: Radius.circular(20),
            )
        ),
        child: SafeArea(
          child: SingleChildScrollView(
            child: Column(
              mainAxisSize: MainAxisSize.min,
              children: [
                const SizedBox(height: 8),
                iconWidget,

                const SizedBox(height: 8),
                Text('Update Available', style: titleStyle),

                const SizedBox(height: 12),

                releaseNotesWidget,

                const SizedBox(height: 24),

                Row(
                  children: [
                    Expanded(
                      child: VersionSentryButtonWidget(
                        onTap: () {Navigator.pop(context);},
                        buttonStyle: cancelButtonStyle,
                        buttonText: cancelButtonText),
                    ),

                    const SizedBox(width: 20),

                    Expanded(
                      child: VersionSentryButtonWidget(
                        onTap: onTapUpdate,
                        buttonStyle: updateButtonStyle,
                        buttonText: updateNowButtonText),
                    ),
                  ],
                ),
              ],
            ),
          ),
        ),
      );
    },
  );
}