selectImage method

void selectImage()

Implementation

void selectImage() async {
  final List<XFile> selectImage = await imagePicker.pickMultiImage();
  if (selectImage.isEmpty) return;

  if (widget._controller.maxCount != null) {
    final totalLength = widget._controller.files.length + selectImage.length;
    if (totalLength > widget._controller.maxCount!) {
      final errorMessage = widget._controller.maxCountMessage ??
          Utils.translateWithFallback('ensemble.input.maxCountMessage',
              'Maximum ${widget._controller.maxCount} files can be selected');
      if (!mounted) return;
      ToastController().showToast(
          context,
          ShowToastAction(
              type: ToastType.error,
              message: errorMessage,
              alignment: Alignment.topCenter,
              dismissible: true,
              duration: 3),
          null);
      return;
    }
  }

  for (var element in selectImage) {
    final bytes = kIsWeb ? await element.readAsBytes() : null;
    final fileSize = await element.length();
    File file = File(element.name, element.path.split('.').last, fileSize,
        element.path, bytes);
    widget._controller.files.insert(0, file);
  }
  setState(() {});
}