From 747b4e9600da3cd6af924936331bb88e36479f66 Mon Sep 17 00:00:00 2001 From: "alonso.torres" Date: Wed, 23 Sep 2020 23:17:16 +0200 Subject: [PATCH] :bug: Fixes color picker when SVG contained special characters --- frontend/src/app/main/ui/workspace/viewport.cljs | 14 ++++++++------ 1 file changed, 8 insertions(+), 6 deletions(-) diff --git a/frontend/src/app/main/ui/workspace/viewport.cljs b/frontend/src/app/main/ui/workspace/viewport.cljs index 3d59e7b398..6316053234 100644 --- a/frontend/src/app/main/ui/workspace/viewport.cljs +++ b/frontend/src/app/main/ui/workspace/viewport.cljs @@ -237,12 +237,14 @@ svg-node (mf/ref-val svg-ref)] (timers/schedule 100 #(let [xml (.serializeToString (js/XMLSerializer.) svg-node) - content (str "data:image/svg+xml;base64," (js/btoa xml)) - img (js/Image.)] - (obj/set! img "onload" - (fn [] - (.drawImage canvas-context img 0 0))) - (obj/set! img "src" content)))) + img-src (str "data:image/svg+xml;base64," + (-> xml js/encodeURIComponent js/unescape js/btoa)) + img (js/Image.) + on-error (fn [err] (.error js/console "ERROR" err)) + on-load (fn [] (.drawImage canvas-context img 0 0))] + (.addEventListener img "error" on-error) + (.addEventListener img "load" on-load) + (obj/set! img "src" img-src)))) (catch :default e (.error js/console e))))) [:*