diff --git a/frontend/src/app/main/ui/shapes/attrs.cljs b/frontend/src/app/main/ui/shapes/attrs.cljs index 2a0f3a129..aeafe56b1 100644 --- a/frontend/src/app/main/ui/shapes/attrs.cljs +++ b/frontend/src/app/main/ui/shapes/attrs.cljs @@ -175,12 +175,12 @@ (obj/set! styles "fill" (str "url(#fill-0-" render-id ")")) ;; imported svgs can have fill and fill-opacity attributes - (obj/contains? svg-styles "fill") + (and (some? svg-styles) (obj/contains? svg-styles "fill")) (-> styles (obj/set! "fill" (obj/get svg-styles "fill")) (obj/set! "fillOpacity" (obj/get svg-styles "fillOpacity"))) - (obj/contains? svg-attrs "fill") + (and (some? svg-attrs) (obj/contains? svg-attrs "fill")) (-> styles (obj/set! "fill" (obj/get svg-attrs "fill")) (obj/set! "fillOpacity" (obj/get svg-attrs "fillOpacity"))) diff --git a/frontend/src/app/main/ui/shapes/custom_stroke.cljs b/frontend/src/app/main/ui/shapes/custom_stroke.cljs index 9d08c4cab..28522282a 100644 --- a/frontend/src/app/main/ui/shapes/custom_stroke.cljs +++ b/frontend/src/app/main/ui/shapes/custom_stroke.cljs @@ -350,7 +350,7 @@ (obj/without ["fill" "fillOpacity"])))] (obj/set! props "fill" (dm/fmt "url(#fill-0-%)" render-id))) - (obj/contains? svg-styles "fill") + (and (some? svg-styles) (obj/contains? svg-styles "fill")) (let [style (-> (obj/get props "style") (obj/clone) @@ -359,7 +359,7 @@ (-> props (obj/set! "style" style))) - (obj/contains? svg-attrs "fill") + (and (some? svg-attrs) (obj/contains? svg-attrs "fill")) (let [style (-> (obj/get props "style") (obj/clone) diff --git a/frontend/src/app/main/ui/shapes/svg_defs.cljs b/frontend/src/app/main/ui/shapes/svg_defs.cljs index 0b875bcfb..a3662e49c 100644 --- a/frontend/src/app/main/ui/shapes/svg_defs.cljs +++ b/frontend/src/app/main/ui/shapes/svg_defs.cljs @@ -43,24 +43,24 @@ transform-mask? (and (= :mask tag) (= "userSpaceOnUse" (get attrs :maskUnits "objectBoundingBox"))) - attrs (-> attrs - (usvg/update-attr-ids prefix-id) - (usvg/clean-attrs) - ;; This clasname will be used to change the transform on the viewport - ;; only necessary for groups because shapes have their own transform - (cond-> (and (or transform-gradient? - transform-pattern? - transform-clippath? - transform-filter? - transform-mask?) - (= :group type)) - (update :className #(if % (dm/str % " svg-def") "svg-def"))) - (cond-> - transform-gradient? (add-matrix :gradientTransform transform) - transform-pattern? (add-matrix :patternTransform transform) - transform-clippath? (add-matrix :transform transform) - (or transform-filter? - transform-mask?) (merge attrs bounds))) + attrs + (-> attrs + (usvg/update-attr-ids prefix-id) + (usvg/clean-attrs) + ;; This clasname will be used to change the transform on the viewport + ;; only necessary for groups because shapes have their own transform + (cond-> (and (or transform-gradient? + transform-pattern? + transform-clippath? + transform-filter? + transform-mask?) + (= :group type)) + (update :className #(if % (dm/str % " svg-def") "svg-def"))) + (cond-> + transform-gradient? (add-matrix :gradientTransform transform) + transform-pattern? (add-matrix :patternTransform transform) + transform-clippath? (add-matrix :transform transform) + (or transform-filter? transform-mask?) (merge bounds))) [wrapper wrapper-props] (if (= tag :mask) ["g" #js {:className "svg-mask-wrapper"