Mermaid-diagram (beslisboom) rendert niet in de webversie #851
Labels
No labels
accepted
bug
declined
docs
duplicate
enhancement
good first issue
in-progress
needs-info
privacy
security
triage
No milestone
No project
No assignees
1 participant
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
LibreKAT/Ocideck#851
Loading…
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Op ocideck.librekat.nl toont een vrije-Markdown/richText-slide met een mermaid-codeblok geen diagram (leeg vlak). Waargenomen 25-07-2026 met de proefpresentatie, geopend via de ?deck=-deeplink.
Op desktop rendert Mermaid wel (de docs gebruiken het), dus het lijkt web-specifiek.
Vermoedelijke richting: de web-render (mermaid_render_host.dart / mermaid_render_service.dart) botst mogelijk met de web-CSP uit web/index.html (script-src 'self'; frame-src 'self' blob: data:), of de gebundelde mermaid wordt op web niet geladen. Verifieren met de gebundelde mermaid.
Impact: technische slides met diagrammen zijn onbruikbaar in de webdemo. In de proefpresentatie is de beslisboom-slide voorlopig verwijderd.
Opgepakt. Tak: fix/851-mermaid-web-render. Oorzaak gevonden: webview_flutter_web implementeert runJavaScriptReturningResult niet (erft de UnimplementedError uit de basisklasse), en de renderer leunt daar volledig op — dus op web faalt elke render stil en blijft het diagram leeg. Fix: een web-native renderpad dat de gebundelde mermaid.min.js via JS-interop in de app-pagina zelf draait (script-src 'self' staat dat toe, geen eval nodig), met conditional import zodat IO de bestaande WebView houdt. Reikwijdte: lib/services/mermaid_render_service*.dart + web-variant, host-widget. Visueel geverifieerd op web voor de merge.
Gebouwd en gemerged: PR #860 (merge
4cca3aeb), op main geverifieerd. Oorzaak: webview_flutter_web implementeert runJavaScriptReturningResult niet, dus de WebView-renderer gaf op web stil null. Fix: op web draait mermaid nu rechtstreeks in de app-pagina — de gebundelde mermaid.min.js via eigen-origin