pickWebFilesForUpload function

Future<List<XFile>?> pickWebFilesForUpload({
  1. bool allowMultiple = false,
  2. List<String> acceptedFileTypes = const [],
})

Picks files using the browser's file selector and converts them to XFiles.

Implementation

Future<List<XFile>?> pickWebFilesForUpload({
  bool allowMultiple = false,
  List<String> acceptedFileTypes = const [],
}) async {
  if (kTesting) print('[pickFilesForUpload] Starting file selection process');

  final webFiles = await selectWebFiles(
    allowMultiple: allowMultiple,
    acceptedFileTypes: acceptedFileTypes,
  );

  if (webFiles.isEmpty) {
    if (kTesting)
      print('[pickWebFilesForUpload] No files selected, returning null');
    return null;
  }

  if (kTesting)
    print('[pickFilesForUpload] Converting ${webFiles.length} files to XFiles');
  final xfiles = webFiles.map((file) => createXFileFromWebFile(file)).toList();

  if (kTesting) print('[pickFilesForUpload] Returning ${xfiles.length} XFiles');

  return xfiles;
}