openDialogImagePicker static method

dynamic openDialogImagePicker({
  1. required BuildContext context,
  2. required VoidCallback openCamera,
  3. required VoidCallback openGallery,
})

Implementation

static openDialogImagePicker({
  required BuildContext context,
  required VoidCallback openCamera,
  required VoidCallback openGallery,
}) {
  return showDialog(
    context: context,
    builder: (_) {
      return ThemeWrapper(
        builder: (colors, controller) {
          return Dialog(
            backgroundColor: colors.transparent,
            insetPadding: EdgeInsets.symmetric(horizontal: 16.w),
            child: Container(
              margin: EdgeInsets.all(24.w),
              width: double.infinity,
              padding: EdgeInsets.all(24.w),
              decoration: BoxDecoration(
                color: colors.backgroundGrey,
                borderRadius: BorderRadius.circular(24.r),
              ),
              child: Column(
                mainAxisSize: MainAxisSize.min,
                crossAxisAlignment: CrossAxisAlignment.center,
                children: [
                  Text(
                    AppHelper.getTr(TrKeys.selectPhoto),
                    textAlign: TextAlign.center,
                    style: CustomStyle.suisseIntlNormal(
                        color: colors.textBlack, size: 18),
                  ),
                  const Divider(),
                  8.verticalSpace,
                  ButtonEffectAnimation(
                    onTap: openCamera,
                    child: Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: 16.r, vertical: 8.r),
                      child: Row(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: [
                          Icon(
                            FlutterRemix.camera_lens_line,
                            color: colors.textBlack,
                          ),
                          6.horizontalSpace,
                          Text(
                            AppHelper.getTr(TrKeys.takePhoto),
                            textAlign: TextAlign.center,
                            style: CustomStyle.suisseIntlNormal(
                                color: colors.textBlack, size: 16),
                          ),
                        ],
                      ),
                    ),
                  ),
                  const Divider(),
                  ButtonEffectAnimation(
                    onTap: openGallery,
                    child: Padding(
                      padding: EdgeInsets.symmetric(
                          horizontal: 16.r, vertical: 8.r),
                      child: Row(
                        crossAxisAlignment: CrossAxisAlignment.center,
                        children: [
                          Icon(
                            FlutterRemix.gallery_line,
                            color: colors.textBlack,
                          ),
                          6.horizontalSpace,
                          Text(
                            AppHelper.getTr(TrKeys.chooseFromLibrary),
                            textAlign: TextAlign.center,
                            style: CustomStyle.suisseIntlNormal(
                                color: colors.textBlack, size: 16),
                          ),
                        ],
                      ),
                    ),
                  ),
                ],
              ),
            ),
          );
        },
      );
    },
  );
}