mirror of
https://github.com/penpot/penpot.git
synced 2025-03-13 16:21:57 -05:00
commit
5b2227cf4f
5 changed files with 36 additions and 31 deletions
|
@ -777,14 +777,19 @@
|
|||
|
||||
:add-children
|
||||
(let [value (dm/get-prop operation :value)
|
||||
index (dm/get-prop operation :index)]
|
||||
(if (some? index)
|
||||
(update shape :shapes
|
||||
(fn [shapes]
|
||||
(if (vector? shapes)
|
||||
(d/insert-at-index shapes index value)
|
||||
(d/concat-vec shapes value))))
|
||||
(update shape :shapes d/concat-vec value)))
|
||||
index (dm/get-prop operation :index)
|
||||
|
||||
shape
|
||||
(if (some? index)
|
||||
(update shape :shapes
|
||||
(fn [shapes]
|
||||
(if (vector? shapes)
|
||||
(d/insert-at-index shapes index value)
|
||||
(d/concat-vec shapes value))))
|
||||
(update shape :shapes d/concat-vec value))]
|
||||
|
||||
;; Remove duplication
|
||||
(update shape :shapes #(into [] (apply d/ordered-set %))))
|
||||
|
||||
:remove-children
|
||||
(let [value (dm/get-prop operation :value)]
|
||||
|
|
|
@ -191,15 +191,15 @@
|
|||
(mf/use-fn
|
||||
(mf/deps parse-value apply-value update-input on-blur)
|
||||
(fn [event]
|
||||
(let [new-value (or @last-value* default)]
|
||||
(if (or nillable? new-value)
|
||||
(apply-value event new-value)
|
||||
(update-input new-value)))
|
||||
(when (fn? on-blur)
|
||||
(on-blur event))))
|
||||
(when (mf/ref-val dirty-ref)
|
||||
(let [new-value (or @last-value* default)]
|
||||
(if (or nillable? new-value)
|
||||
(apply-value event new-value)
|
||||
(update-input new-value)))
|
||||
(when (fn? on-blur)
|
||||
(on-blur event)))))
|
||||
|
||||
handle-unmount
|
||||
(h/use-ref-callback handle-blur)
|
||||
handle-unmount (h/use-ref-callback handle-blur)
|
||||
|
||||
on-click
|
||||
(mf/use-fn
|
||||
|
@ -240,10 +240,7 @@
|
|||
(when-let [input-node (mf/ref-val ref)]
|
||||
(dom/set-value! input-node (fmt/format-number value))))
|
||||
|
||||
(mf/with-effect []
|
||||
(fn []
|
||||
(when (mf/ref-val dirty-ref)
|
||||
(handle-unmount))))
|
||||
(mf/with-effect [handle-unmount] handle-unmount)
|
||||
|
||||
(mf/with-layout-effect []
|
||||
(let [keys [(events/listen globals/window "pointerdown" on-click)
|
||||
|
|
|
@ -90,7 +90,7 @@
|
|||
attrs))
|
||||
|
||||
(defn add-stroke!
|
||||
[attrs data render-id index]
|
||||
[attrs data render-id index open-path?]
|
||||
(let [style (:stroke-style data :solid)]
|
||||
(when-not (= style :none)
|
||||
(let [width (:stroke-width data 1)
|
||||
|
@ -122,16 +122,18 @@
|
|||
(cond
|
||||
(and (contains? stroke-caps-line caps-start)
|
||||
(= caps-start caps-end)
|
||||
(not= :inner alignment)
|
||||
(not= :outer alignment)
|
||||
(or open-path?
|
||||
(and (not= :inner alignment)
|
||||
(not= :outer alignment)))
|
||||
(not= :dotted style))
|
||||
(obj/set! attrs "strokeLinecap" (name caps-start))
|
||||
|
||||
(= :dotted style)
|
||||
(obj/set! attrs "strokeLinecap" "round"))
|
||||
|
||||
(when (and (not= :inner alignment)
|
||||
(not= :outer alignment))
|
||||
(when (or open-path?
|
||||
(and (not= :inner alignment)
|
||||
(not= :outer alignment)))
|
||||
|
||||
;; For other cap types we use markers.
|
||||
(when (or (contains? stroke-caps-marker caps-start)
|
||||
|
|
|
@ -420,7 +420,7 @@
|
|||
(mf/html [:> type props])))
|
||||
|
||||
(defn- build-stroke-element
|
||||
[child value position render-id]
|
||||
[child value position render-id open-path?]
|
||||
(let [props (obj/get child "props")
|
||||
type (obj/get child "type")
|
||||
|
||||
|
@ -428,7 +428,7 @@
|
|||
(obj/clone)
|
||||
(obj/set! "fill" "none")
|
||||
(obj/set! "fillOpacity" "none")
|
||||
(attrs/add-stroke! value render-id position))
|
||||
(attrs/add-stroke! value render-id position open-path?))
|
||||
|
||||
style (if (:stroke-image value)
|
||||
(obj/set! style "stroke" (dm/fmt "url(#stroke-fill-%-%)" render-id position))
|
||||
|
@ -484,9 +484,10 @@
|
|||
props (mf/spread-props svg-attrs
|
||||
{:id stroke-id
|
||||
:className "strokes"
|
||||
:style style})]
|
||||
|
||||
:style style})
|
||||
|
||||
open-path? (and ^boolean (cfh/path-shape? shape)
|
||||
^boolean (gsh/open-path? shape))]
|
||||
(when-not ^boolean (cfh/frame-shape? shape)
|
||||
(when (and (some? shape-blur)
|
||||
(not ^boolean (:hidden shape-blur)))
|
||||
|
@ -503,7 +504,7 @@
|
|||
:stroke value
|
||||
:index index
|
||||
:key (dm/str index "-" stroke-id)}
|
||||
(build-stroke-element child value index render-id)])])))
|
||||
(build-stroke-element child value index render-id open-path?)])])))
|
||||
|
||||
(mf/defc shape-custom-strokes
|
||||
{::mf/wrap-props false}
|
||||
|
|
|
@ -112,7 +112,7 @@
|
|||
(fn [color]
|
||||
(st/emit! (dch/update-shapes
|
||||
ids
|
||||
#(assoc-in % [:shadow index :color] color)))))
|
||||
#(assoc-in % [:shadow index :color] (d/without-nils color))))))
|
||||
|
||||
detach-color
|
||||
(mf/use-fn
|
||||
|
|
Loading…
Add table
Reference in a new issue