pickImages method
Implementation
Future<void> pickImages() async {
if (isViewScreen.value) return;
var imageFiles = await FilePickerWrapper.pickImageMultiple();
if (imageFiles.isEmpty) return;
isLoading.value = true;
uploadStatus.value = 'Uploading...';
try {
List<Uint8List> fileBytesList;
if (kIsWeb) {
fileBytesList = imageFiles.cast<Uint8List>();
} else {
fileBytesList = await Future.wait(
imageFiles.map((file) => file.readAsBytes()),
);
}
var response = await apiService.uploadImageList(imageFiles,
fileBytesList,
createdBy: context.createdBy,
fileTypeId: context.fileTypeId,
moduleId: context.moduleId
);
if (response.statusCode == 200) {
List<dynamic> uploadedData = response.data['data']['Tag'];
for (var item in uploadedData) {
images.add(
AddonsFunDetails(
createdBy: context.createdBy,
funRefVal: item['Path'].toString(),
isActive: 1,
addOnType: 'Photos',
),
);
}
selectedImage.value = images.firstOrNull;
uploadStatus.value = '';
} else {
uploadStatus.value = 'Upload failed';
}
} catch (e) {
uploadStatus.value = 'Error: $e';
} finally {
isLoading.value = false;
}
}