pickImages method

Future<void> pickImages()

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;
  }
}