mirror of
https://github.com/penpot/penpot.git
synced 2026-08-01 19:06:18 +00:00
🐛 Fix after changing a variant property value, the value appears as empty (#7791)
This commit is contained in:
parent
b82828632e
commit
fae488b15a
@ -61,6 +61,7 @@
|
|||||||
nodes-ref (mf/use-ref nil)
|
nodes-ref (mf/use-ref nil)
|
||||||
options-ref (mf/use-ref nil)
|
options-ref (mf/use-ref nil)
|
||||||
listbox-id (mf/use-id)
|
listbox-id (mf/use-id)
|
||||||
|
value-ref (mf/use-ref nil)
|
||||||
|
|
||||||
dropdown-options
|
dropdown-options
|
||||||
(mf/with-memo [options filter-id]
|
(mf/with-memo [options filter-id]
|
||||||
@ -200,11 +201,10 @@
|
|||||||
(let [value (-> event
|
(let [value (-> event
|
||||||
dom/get-target
|
dom/get-target
|
||||||
dom/get-value)]
|
dom/get-value)]
|
||||||
|
(mf/set-ref-val! value-ref value)
|
||||||
(reset! selected-id* value)
|
(reset! selected-id* value)
|
||||||
(reset! filter-id* value)
|
(reset! filter-id* value)
|
||||||
(reset! focused-id* nil)
|
(reset! focused-id* nil))))
|
||||||
(when (fn? on-change)
|
|
||||||
(on-change value)))))
|
|
||||||
|
|
||||||
selected-option
|
selected-option
|
||||||
(mf/with-memo [options selected-id]
|
(mf/with-memo [options selected-id]
|
||||||
@ -223,6 +223,13 @@
|
|||||||
(fn []
|
(fn []
|
||||||
(reset! selected-id* default-selected)))
|
(reset! selected-id* default-selected)))
|
||||||
|
|
||||||
|
;; On componnet unmount, save the new value if needed
|
||||||
|
(mf/with-effect [on-change]
|
||||||
|
(fn []
|
||||||
|
(when-let [value (mf/ref-val value-ref)]
|
||||||
|
(mf/set-ref-val! value-ref nil)
|
||||||
|
(on-change value))))
|
||||||
|
|
||||||
[:div {:ref combobox-ref
|
[:div {:ref combobox-ref
|
||||||
:class (stl/css-case
|
:class (stl/css-case
|
||||||
:wrapper true
|
:wrapper true
|
||||||
|
|||||||
@ -309,6 +309,13 @@
|
|||||||
to-space-between-pos (if (= relative-pos :bot) (inc pos) pos)]
|
to-space-between-pos (if (= relative-pos :bot) (inc pos) pos)]
|
||||||
(on-reorder from-pos to-space-between-pos))))
|
(on-reorder from-pos to-space-between-pos))))
|
||||||
|
|
||||||
|
|
||||||
|
on-prop-value-change
|
||||||
|
(mf/use-fn
|
||||||
|
(mf/deps on-prop-value-change pos)
|
||||||
|
(fn [value]
|
||||||
|
(on-prop-value-change pos value)))
|
||||||
|
|
||||||
[dprops dref]
|
[dprops dref]
|
||||||
(h/use-sortable
|
(h/use-sortable
|
||||||
:data-type "penpot/variant-property"
|
:data-type "penpot/variant-property"
|
||||||
@ -350,7 +357,8 @@
|
|||||||
(get :objects))
|
(get :objects))
|
||||||
|
|
||||||
props-list (map :variant-properties components)
|
props-list (map :variant-properties components)
|
||||||
component-ids (map :id components)
|
component-ids (mf/with-memo [components]
|
||||||
|
(map :id components))
|
||||||
properties (if (> (count component-ids) 1)
|
properties (if (> (count component-ids) 1)
|
||||||
(ctv/compare-properties props-list false)
|
(ctv/compare-properties props-list false)
|
||||||
(first props-list))
|
(first props-list))
|
||||||
@ -413,7 +421,7 @@
|
|||||||
:prop prop
|
:prop prop
|
||||||
:options (get-options (:name prop))
|
:options (get-options (:name prop))
|
||||||
:on-prop-name-blur update-property-name
|
:on-prop-name-blur update-property-name
|
||||||
:on-prop-value-change (partial update-property-value pos)
|
:on-prop-value-change update-property-value
|
||||||
:on-reorder reorder-properties}])]]
|
:on-reorder reorder-properties}])]]
|
||||||
|
|
||||||
(if malformed-msg
|
(if malformed-msg
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user