enhance: don't show delete button when there're no values

This commit is contained in:
Tienson Qin
2023-07-04 14:22:05 +08:00
parent 0c4c0322ff
commit 49a7026d90

View File

@@ -205,7 +205,7 @@
[state block *property-key *property-value *search?]
(let [*key-down-triggered? (::key-down-triggered? state)]
[:input#add-property.form-input.simple-input.block.col-span-1.focus:outline-none
{:placeholder "Property key"
{:placeholder "Add a property"
:tabindex "0"
:value @*property-key
:auto-focus true
@@ -319,10 +319,10 @@
(ui/icon "x")]])]))
(rum/defcs multiple-value-item < (rum/local false ::show-close?)
[state entity property item {:keys [dom-id editor-id
page-cp inline-text
new-item?]
:as opts}]
[state entity property items item {:keys [dom-id editor-id
page-cp inline-text
new-item?]
:as opts}]
(let [*show-close? (::show-close? state)
object? (= :object (:type (:block/schema property)))
block (when object? (db/pull [:block/uuid item]))
@@ -331,7 +331,8 @@
:on-mouse-out #(reset! *show-close? false)}
(property-scalar-value entity property item opts)
(when (and (or (not new-item?) editing?)
@*show-close?)
@*show-close?
(seq items))
[:a.close.fade-in
{:title "Delete this value"
:on-mouse-down
@@ -359,9 +360,9 @@
:format :markdown}]
(cond
multiple-values?
(let [v' (if (coll? v) v (when v [v]))
v' (if (seq v') v' [""])
v' (conj v' ::new-value-placeholder) ; new one
(let [items (if (coll? v) v (when v [v]))
v' (if (seq items) items [""])
v' (conj v' ::new-value-placeholder) ; new one
editor-id' (str editor-id (count v'))]
[:div.flex.flex-1.flex-col
[:div.flex.flex-1.flex-col
@@ -369,7 +370,7 @@
(let [dom-id' (str dom-id "-" idx)
editor-id' (str editor-id idx)]
(rum/with-key
(multiple-value-item block property item
(multiple-value-item block property items item
{:dom-id dom-id'
:editor-id editor-id'
:editor-box editor-box