showImagePicker static method

Future<List<FileData>> showImagePicker({
  1. required ImageSource source,
  2. bool allowMultiple = false,
  3. dynamic action(
    1. List<FileData>
    )?,
})

Implementation

static Future<List<FileData>> showImagePicker({
  required final ImageSource source,
  final bool allowMultiple = false,
  final Function(List<FileData>)? action,
}) async {
  final List<FileData> files = <FileData>[];
  final ImagePicker imagePicker = ImagePicker();

  if (allowMultiple) {
    final List<XFile> images = await imagePicker.pickMultiImage();
    for (final XFile i in images) {
      final Uint8List bytes = await i.readAsBytes();
      files.add(FileData(bytes: bytes, path: i.path, extension: i.path.split(".").last));
    }
    if (action != null) action(files);
    return files;
  } else {
    final XFile? image = await imagePicker.pickImage(
      source: source,
    );
    if (image == null) return <FileData>[];
    final Uint8List bytes = await image.readAsBytes();
    files.add(FileData(bytes: bytes, path: image.path, extension: image.path.split(".").last));
    if (action != null) action(files);
    return files;
  }
}