🐛 Fix after changing a variant property value, the value appears as empty (#7791)

This commit is contained in:
Pablo Alba 2025-11-21 17:51:12 +01:00 committed by GitHub
parent b82828632e
commit fae488b15a
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 20 additions and 5 deletions

View File

@ -61,6 +61,7 @@
nodes-ref (mf/use-ref nil)
options-ref (mf/use-ref nil)
listbox-id (mf/use-id)
value-ref (mf/use-ref nil)
dropdown-options
(mf/with-memo [options filter-id]
@ -200,11 +201,10 @@
(let [value (-> event
dom/get-target
dom/get-value)]
(mf/set-ref-val! value-ref value)
(reset! selected-id* value)
(reset! filter-id* value)
(reset! focused-id* nil)
(when (fn? on-change)
(on-change value)))))
(reset! focused-id* nil))))
selected-option
(mf/with-memo [options selected-id]
@ -223,6 +223,13 @@
(fn []
(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
:class (stl/css-case
:wrapper true

View File

@ -309,6 +309,13 @@
to-space-between-pos (if (= relative-pos :bot) (inc pos) 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]
(h/use-sortable
:data-type "penpot/variant-property"
@ -350,7 +357,8 @@
(get :objects))
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)
(ctv/compare-properties props-list false)
(first props-list))
@ -413,7 +421,7 @@
:prop prop
:options (get-options (:name prop))
: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}])]]
(if malformed-msg