mirror of
https://github.com/penpot/penpot.git
synced 2025-03-14 16:51:18 -05:00
✨ Move common code on shape props checking to shapes/common ns
This commit is contained in:
parent
d9c496b131
commit
d3c9bf1e76
3 changed files with 22 additions and 27 deletions
|
@ -77,13 +77,8 @@
|
||||||
:thumbnail? (not (contains? active-frames (dm/get-prop shape :id)))}]
|
:thumbnail? (not (contains? active-frames (dm/get-prop shape :id)))}]
|
||||||
[:& shape-wrapper {:shape shape}])])]]]))
|
[:& shape-wrapper {:shape shape}])])]]]))
|
||||||
|
|
||||||
(defn- check-shape-wrapper-props
|
|
||||||
[np op]
|
|
||||||
(frame/check-shape (unchecked-get np "shape")
|
|
||||||
(unchecked-get op "shape")))
|
|
||||||
|
|
||||||
(mf/defc shape-wrapper
|
(mf/defc shape-wrapper
|
||||||
{::mf/wrap [#(mf/memo' % check-shape-wrapper-props)]
|
{::mf/wrap [#(mf/memo' % common/check-shape-props)]
|
||||||
::mf/wrap-props false}
|
::mf/wrap-props false}
|
||||||
[props]
|
[props]
|
||||||
(let [shape (unchecked-get props "shape")
|
(let [shape (unchecked-get props "shape")
|
||||||
|
|
|
@ -6,13 +6,30 @@
|
||||||
|
|
||||||
(ns app.main.ui.workspace.shapes.common
|
(ns app.main.ui.workspace.shapes.common
|
||||||
(:require
|
(:require
|
||||||
|
[app.common.record :as cr]
|
||||||
[app.main.ui.shapes.shape :refer [shape-container]]
|
[app.main.ui.shapes.shape :refer [shape-container]]
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
|
(def ^:private excluded-attrs
|
||||||
|
#{:blocked
|
||||||
|
:hide-fill-on-export
|
||||||
|
:collapsed
|
||||||
|
:remote-synced
|
||||||
|
:exports})
|
||||||
|
|
||||||
|
(defn check-shape
|
||||||
|
[new-shape old-shape]
|
||||||
|
(cr/-equiv-with-exceptions old-shape new-shape excluded-attrs))
|
||||||
|
|
||||||
|
(defn check-shape-props
|
||||||
|
[np op]
|
||||||
|
(check-shape (unchecked-get np "shape")
|
||||||
|
(unchecked-get op "shape")))
|
||||||
|
|
||||||
(defn generic-wrapper-factory
|
(defn generic-wrapper-factory
|
||||||
[component]
|
[component]
|
||||||
(mf/fnc generic-wrapper
|
(mf/fnc generic-wrapper
|
||||||
{::mf/wrap [#(mf/memo' % (mf/check-props ["shape"]))]
|
{::mf/wrap [#(mf/memo' % check-shape-props)]
|
||||||
::mf/wrap-props false}
|
::mf/wrap-props false}
|
||||||
[props]
|
[props]
|
||||||
(let [shape (unchecked-get props "shape")]
|
(let [shape (unchecked-get props "shape")]
|
||||||
|
|
|
@ -9,7 +9,6 @@
|
||||||
[app.common.data :as d]
|
[app.common.data :as d]
|
||||||
[app.common.data.macros :as dm]
|
[app.common.data.macros :as dm]
|
||||||
[app.common.pages.helpers :as cph]
|
[app.common.pages.helpers :as cph]
|
||||||
[app.common.record :as cr]
|
|
||||||
[app.main.data.workspace.state-helpers :as wsh]
|
[app.main.data.workspace.state-helpers :as wsh]
|
||||||
[app.main.data.workspace.thumbnails :as dwt]
|
[app.main.data.workspace.thumbnails :as dwt]
|
||||||
[app.main.refs :as refs]
|
[app.main.refs :as refs]
|
||||||
|
@ -20,33 +19,18 @@
|
||||||
[app.main.ui.shapes.frame :as frame]
|
[app.main.ui.shapes.frame :as frame]
|
||||||
[app.main.ui.shapes.shape :refer [shape-container]]
|
[app.main.ui.shapes.shape :refer [shape-container]]
|
||||||
[app.main.ui.shapes.text.fontfaces :as ff]
|
[app.main.ui.shapes.text.fontfaces :as ff]
|
||||||
|
[app.main.ui.workspace.shapes.common :refer [check-shape-props]]
|
||||||
[app.main.ui.workspace.shapes.frame.dynamic-modifiers :as fdm]
|
[app.main.ui.workspace.shapes.frame.dynamic-modifiers :as fdm]
|
||||||
[app.main.ui.workspace.shapes.frame.node-store :as fns]
|
[app.main.ui.workspace.shapes.frame.node-store :as fns]
|
||||||
[app.main.ui.workspace.shapes.frame.thumbnail-render :as ftr]
|
[app.main.ui.workspace.shapes.frame.thumbnail-render :as ftr]
|
||||||
[beicon.core :as rx]
|
[beicon.core :as rx]
|
||||||
[rumext.v2 :as mf]))
|
[rumext.v2 :as mf]))
|
||||||
|
|
||||||
(def ^:private excluded-attrs
|
|
||||||
#{:blocked
|
|
||||||
:hide-fill-on-export
|
|
||||||
:collapsed
|
|
||||||
:remote-synced
|
|
||||||
:exports})
|
|
||||||
|
|
||||||
(defn check-shape
|
|
||||||
[new-shape old-shape]
|
|
||||||
(cr/-equiv-with-exceptions old-shape new-shape excluded-attrs))
|
|
||||||
|
|
||||||
(defn check-frame-props
|
|
||||||
[np op]
|
|
||||||
(check-shape (unchecked-get np "shape")
|
|
||||||
(unchecked-get op "shape")))
|
|
||||||
|
|
||||||
(defn frame-shape-factory
|
(defn frame-shape-factory
|
||||||
[shape-wrapper]
|
[shape-wrapper]
|
||||||
(let [frame-shape (frame/frame-shape shape-wrapper)]
|
(let [frame-shape (frame/frame-shape shape-wrapper)]
|
||||||
(mf/fnc frame-shape-inner
|
(mf/fnc frame-shape-inner
|
||||||
{::mf/wrap [#(mf/memo' % check-frame-props)]
|
{::mf/wrap [#(mf/memo' % check-shape-props)]
|
||||||
::mf/wrap-props false
|
::mf/wrap-props false
|
||||||
::mf/forward-ref true}
|
::mf/forward-ref true}
|
||||||
[props ref]
|
[props ref]
|
||||||
|
@ -66,8 +50,7 @@
|
||||||
[new-props old-props]
|
[new-props old-props]
|
||||||
(and (= (unchecked-get new-props "thumbnail?")
|
(and (= (unchecked-get new-props "thumbnail?")
|
||||||
(unchecked-get old-props "thumbnail?"))
|
(unchecked-get old-props "thumbnail?"))
|
||||||
(check-shape (unchecked-get new-props "shape")
|
(check-shape-props new-props old-props)))
|
||||||
(unchecked-get old-props "shape"))))
|
|
||||||
|
|
||||||
(defn nested-frame-wrapper-factory
|
(defn nested-frame-wrapper-factory
|
||||||
[shape-wrapper]
|
[shape-wrapper]
|
||||||
|
|
Loading…
Add table
Reference in a new issue