Files
Traders_Circuit/lib/Utils/Common/ImageUpload.dart
2024-03-26 16:57:04 +05:30

159 lines
5.8 KiB
Dart

import 'package:flutter/material.dart';
import 'package:flutter_screenutil/flutter_screenutil.dart';
import 'package:get/get.dart';
import 'package:image_picker/image_picker.dart';
import 'package:traderscircuit/Utils/Common/sized_box.dart';
import 'package:traderscircuit/controller/profile_image_controller.dart';
import 'ImagePicker.dart';
import 'SingleFilePicker.dart';
class ImageUploadBottomSheet {
final ProfileImageController editProfileImage =
Get.put(ProfileImageController());
showModal(
BuildContext context,
bool showFile,
Function(String) onImagePicked,
) {
return showModalBottomSheet(
isScrollControlled: true,
context: context,
shape: RoundedRectangleBorder(
borderRadius: BorderRadius.only(
topLeft: Radius.circular(26.r),
topRight: Radius.circular(26.r),
),
),
builder: (context) {
return Container(
margin: EdgeInsets.symmetric(horizontal: 36.w, vertical: 26.h),
child: Padding(
padding: EdgeInsets.only(
bottom: MediaQuery.of(context).viewInsets.bottom),
child: Column(
mainAxisSize: MainAxisSize.min,
children: [
Text(
(showFile) ? 'Select Image/File' : 'Select Image',
style: TextStyle(
color: const Color(0xff444444),
fontSize: 22.sp,
),
),
sizedBoxHeight(40.h),
Row(
crossAxisAlignment: CrossAxisAlignment.start,
mainAxisAlignment: MainAxisAlignment.spaceEvenly,
children: [
GestureDetector(
onTap: () async {
// editProfileImage.getImage(ImageSource.camera);
var result = await ImagePickerMethod()
.getImage(ImageSource.camera);
onImagePicked(result);
Get.back();
},
child: Column(
children: [
CircleAvatar(
radius: 27.r,
backgroundColor: const Color(0xFFE8C69F80),
child: Icon(
Icons.camera_alt_outlined,
size: 30.sp,
color: Colors.white,
),
),
SizedBox(
height: 6.h,
),
Text(
'Camera',
style: TextStyle(
fontSize: 13.sp,
color: const Color(0xff444444),
),
)
],
),
),
sizedBoxWidth(36.w),
GestureDetector(
onTap: () async {
var result = await ImagePickerMethod()
.getImage(ImageSource.gallery);
onImagePicked(result);
Get.back();
},
child: Column(
children: [
CircleAvatar(
radius: 27.r,
backgroundColor: const Color(0xFFE8C69F80),
child: Icon(
Icons.image_outlined,
size: 30.sp,
color: Colors.white,
),
),
SizedBox(
height: 6.h,
),
Text(
'Gallery',
style: TextStyle(
fontSize: 13.sp,
color: const Color(0xff444444),
),
)
],
),
),
Visibility(visible: showFile, child: sizedBoxWidth(36.w)),
Visibility(
visible: showFile,
child: GestureDetector(
onTap: () async {
var result =
await SingleFilePickerMethod().pickFile();
onImagePicked(result?.path ?? "");
Get.back();
},
child: Column(
children: [
CircleAvatar(
radius: 27.r,
backgroundColor: const Color(0xFFE8C69F80),
child: Icon(
Icons.file_copy_outlined,
size: 30.sp,
color: Colors.white,
),
),
SizedBox(
height: 6.h,
),
Text(
'File',
style: TextStyle(
fontSize: 13.sp,
color: const Color(0xff444444),
fontFamily: 'Poppins'),
)
],
),
),
),
],
),
],
),
),
);
},
);
}
}