import 'dart:typed_data';

import 'package:web/web.dart' as web;

/// 웹 환경에서 Anchor 요소를 사용해 파일 저장을 트리거한다.
Future<void> saveFileBytesImpl({
  required Uint8List bytes,
  required String filename,
  required String mimeType,
}) async {
  final dataUrl = Uri.dataFromBytes(bytes, mimeType: mimeType).toString();
  final anchor = web.document.createElement('a') as web.HTMLAnchorElement
    ..href = dataUrl
    ..download = filename;
  anchor.style.display = 'none';

  web.document.body?.append(anchor);
  anchor.click();
  anchor.remove();
}
