mirror of
https://github.com/logseq/logseq.git
synced 2026-05-21 19:24:17 +00:00
fix: avoid task status default flicker on tagged nodes
This commit is contained in:
@@ -1579,6 +1579,23 @@
|
||||
(when (some? value) #{value}))]
|
||||
(multiple-values-inner block property value' opts)))
|
||||
|
||||
(defn- resolved-property-value-for-render
|
||||
[block property multiple-values?]
|
||||
(let [v (get block (:db/ident property))
|
||||
block-loaded? (some? (:block/uuid block))]
|
||||
(or
|
||||
(cond
|
||||
(and multiple-values? (or (set? v) (coll? v) (nil? v)))
|
||||
v
|
||||
multiple-values?
|
||||
#{v}
|
||||
(set? v)
|
||||
(first v)
|
||||
:else
|
||||
v)
|
||||
(when block-loaded?
|
||||
(:logseq.property/default-value property)))))
|
||||
|
||||
(rum/defcs ^:large-vars/cleanup-todo property-value < rum/reactive db-mixins/query
|
||||
[state block property {:keys [show-tooltip? p-block p-property editing?]
|
||||
:as opts}]
|
||||
@@ -1595,18 +1612,7 @@
|
||||
editor-id (str dom-id "-editor")
|
||||
type (:logseq.property/type property)
|
||||
multiple-values? (db-property/many? property)
|
||||
v (let [v (get block (:db/ident property))]
|
||||
(or
|
||||
(cond
|
||||
(and multiple-values? (or (set? v) (coll? v) (nil? v)))
|
||||
v
|
||||
multiple-values?
|
||||
#{v}
|
||||
(set? v)
|
||||
(first v)
|
||||
:else
|
||||
v)
|
||||
(:logseq.property/default-value property)))
|
||||
v (resolved-property-value-for-render block property multiple-values?)
|
||||
self-value-or-embedded? (fn [v]
|
||||
(or (= (:db/id v) (:db/id block))
|
||||
;; property value self embedded
|
||||
|
||||
@@ -47,3 +47,21 @@
|
||||
(p/catch (fn [error]
|
||||
(is false (str error))
|
||||
(done)))))))
|
||||
|
||||
(deftest resolved-property-value-for-render-skips-default-for-placeholder-row-test
|
||||
(let [property {:db/ident :logseq.property/status
|
||||
:logseq.property/default-value {:db/id 3
|
||||
:db/ident :logseq.property/status.todo
|
||||
:block/title "Todo"}}
|
||||
placeholder-block {:db/id 1}]
|
||||
(is (nil? (#'property-value/resolved-property-value-for-render placeholder-block property false)))))
|
||||
|
||||
(deftest resolved-property-value-for-render-uses-default-for-loaded-block-test
|
||||
(let [property {:db/ident :logseq.property/status
|
||||
:logseq.property/default-value {:db/id 3
|
||||
:db/ident :logseq.property/status.todo
|
||||
:block/title "Todo"}}
|
||||
loaded-block {:db/id 1
|
||||
:block/uuid #uuid "11111111-1111-1111-1111-111111111111"}]
|
||||
(is (= (:logseq.property/default-value property)
|
||||
(#'property-value/resolved-property-value-for-render loaded-block property false)))))
|
||||
|
||||
Reference in New Issue
Block a user