openDialogImagePicker static method
dynamic
openDialogImagePicker({
- required BuildContext context,
- required VoidCallback openCamera,
- 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),
),
],
),
),
),
],
),
),
);
},
);
},
);
}