pickMultipleImages method

Future<List<String>> pickMultipleImages()

Opens the browser's file picker for selecting multiple media files.

Returns a List of String objects based on the selected files.

Implementation

Future<List<String>> pickMultipleImages() async {
  final completer = Completer<List<String>>();
  final input = html.FileUploadInputElement();

  input.multiple = maxLimit > 1;
  input.accept = _getAcceptMimeTypes();

  input.click();

  input.onChange.listen((event) {
    final files = input.files;
    if (files == null || files.isEmpty) {
      completer.complete([]);
      return;
    }

    final List<String> fileUrls = [];

    for (var i = 0; i < files.length && i < maxLimit; i++) {
      final file = files[i];
      // Create a blob URL (temporary object URL for browser use)
      final url = html.Url.createObjectUrl(file);
      fileUrls.add(url);
    }

    completer.complete(fileUrls);
  });

  return completer.future;
}