From f6eaea38146d8901756418c4e7123eb7bd77249e Mon Sep 17 00:00:00 2001 From: Srujan Gaddam <58529443+srujzs@users.noreply.github.com> Date: Wed, 24 Jul 2024 15:00:40 -0700 Subject: [PATCH] Add support for package:web 1.0.0 (#619) 1.0.0 modifies innerHTML to be JSAny in order to support trusted types, and this is the only member that needs to be worked around to support that version. --- CHANGELOG.md | 1 + example/app.dart | 9 ++++++++- pubspec.yaml | 2 +- 3 files changed, 10 insertions(+), 2 deletions(-) diff --git a/CHANGELOG.md b/CHANGELOG.md index efb2c374..ec5b8904 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,6 +1,7 @@ ## 7.2.3 * Fix an issue with checkbox list items separated with blank lines (#602). +* Require package `web: '>=0.4.2 <2.0.0'`. ## 7.2.2 diff --git a/example/app.dart b/example/app.dart index 925d4f0a..14b8f193 100644 --- a/example/app.dart +++ b/example/app.dart @@ -69,7 +69,7 @@ void main() { void _renderMarkdown([Event? event]) { final markdown = markdownInput.value; - htmlDiv.innerHTML = md.markdownToHtml(markdown, extensionSet: extensionSet); + htmlDiv.innerHtml = md.markdownToHtml(markdown, extensionSet: extensionSet); for (final block in htmlDiv.querySelectorAll('pre code').items) { try { @@ -139,3 +139,10 @@ extension on NamedNodeMap { if (getNamedItem(qualifiedName) != null) removeNamedItem(qualifiedName); } } + +extension on HTMLDivElement { + // The default implementation allows `JSAny` to support trusted types. We only + // use `String`s, so prefer this to avoid manual conversions. + @JS('innerHTML') + external set innerHtml(String value); +} diff --git a/pubspec.yaml b/pubspec.yaml index d00fc17b..947b66ea 100644 --- a/pubspec.yaml +++ b/pubspec.yaml @@ -30,5 +30,5 @@ dev_dependencies: pool: ^1.5.1 tar: ^1.0.3 test: ^1.16.0 - web: '>=0.4.2 <0.6.0' + web: '>=0.4.2 <2.0.0' yaml: ^3.0.0