blob: b1d1d27a797168d68d8efb7beeb637b05e8efb62 [file]
import 'dart:js_interop';
import 'dart:typed_data';
import 'package:web/web.dart' as web;
/// Triggers a browser file download by creating a temporary anchor element.
void triggerBrowserDownload(Uint8List bytes, String filename) {
final jsArray = [bytes.toJS].toJS;
final blob = web.Blob(jsArray, web.BlobPropertyBag(type: 'application/zip'));
final url = web.URL.createObjectURL(blob);
final anchor = web.document.createElement('a') as web.HTMLAnchorElement;
anchor.href = url;
anchor.download = filename;
web.document.body!.appendChild(anchor);
anchor.click();
web.document.body!.removeChild(anchor);
web.URL.revokeObjectURL(url);
}