pickFiles method
Implementation
Future<void> pickFiles() async {
if (isViewScreen.value) return;
var result = await FilePicker.platform.pickFiles(
allowMultiple: true,
withData: true,
);
if (result == null || result.files.isEmpty) return;
isLoading.value = true;
uploadStatus.value = 'Uploading...';
try {
final fileBytesList = result.files.map((f) => f.bytes!).toList();
final fileNames = result.files.map((f) => f.name).toList();
var response =
await apiService.uploadFileList(fileBytesList, fileNames, {
'createdBy': context.createdBy,
'FileTypeId': context.fileTypeId,
'moduleId': context.moduleId,
});
if (response.statusCode == 200) {
List<dynamic> uploadedData = response.data['data']['Result'];
for (var item in uploadedData) {
files.add(
AddonsFunDetails(
createdBy: context.createdBy,
funRefVal: item['Path'].toString(),
isActive: 1,
addOnType: 'Files',
),
);
}
uploadStatus.value = 'Upload successful';
} else {
uploadStatus.value = 'Upload failed';
}
} catch (e) {
uploadStatus.value = 'Error: $e';
} finally {
isLoading.value = false;
}
}