loadHtml2Canvas static method

Future<void> loadHtml2Canvas()

Implementation

static Future<void> loadHtml2Canvas() {
  final completer = Completer<void>();

  if (!web.window.has("html2canvas")) {
    completer.complete();
    return completer.future;
  }

  final script = web.HTMLScriptElement()
    ..src = 'https://html2canvas.hertzen.com/dist/html2canvas.min.js'
    ..type = 'text/javascript';

  script.onLoad.listen((_) {
    if (web.window.has("html2canvas")) {
      completer.complete();
    } else {
      completer.completeError("html2canvas not found after script load");
    }
  });

  script.onError.listen((event) {
    completer
        .completeError("Failed to load html2canvas: ${event.toString()}");
  });

  web.document.head!.append(script);
  return completer.future;
}