fix: can't add or update closed values

experiment/tanstack-table
Gabriel Horner 2024-05-14 09:28:39 -04:00
parent d142cf227e
commit 4a7dab2763
3 changed files with 15 additions and 25 deletions

View File

@ -94,11 +94,12 @@
;; FIXME: UI concerns shouldn't be in this layer
(number? (some-> (:block/content entity) parse-double))))))
(defn- property-value-block?
[db s]
(when-let [ent (d/entity db s)]
(and (:block/content ent)
(:logseq.property/created-from-property ent))))
(defn- text-entity?
[db s {:keys [new-closed-value?]}]
(if new-closed-value?
(string? s)
(when-let [ent (d/entity db s)]
(string? (:block/content ent)))))
(defn- page?
[db val]
@ -116,7 +117,7 @@
"Map of types to malli validation schemas that validate a property value for that type"
{:default [:fn
{:error/message "should be a text block"}
property-value-block?]
text-entity?]
:string [:fn
{:error/message "should be a string"}
string-entity?]

View File

@ -443,15 +443,6 @@
property-type (get property-schema :type :default)]
(when (contains? db-property-type/closed-value-property-types property-type)
(let [value (if (string? value) (string/trim value) value)
closed-values (:property/closed-values property)
default-closed-values? (and (= :default property-type) (seq closed-values))
value (if (and default-closed-values? (string? value) (not (string/blank? value)))
(let [result (create-property-text-block! conn nil
(:db/id property)
value
{})]
(:db/id (d/entity @conn [:block/uuid (:block-id result)])))
value)
resolved-value (try
(convert-property-input-string (:type property-schema) value)
(catch :default e
@ -466,15 +457,16 @@
(some (fn [b]
(and (= (str resolved-value) (str (or (db-property/property-value-when-closed b)
(:block/uuid b))))
(not= id (:block/uuid b)))) closed-values)
(not= id (:block/uuid b))))
(:property/closed-values property))
(do
;; (notification/show! "Choice already exists" :warning)
:value-exists)
(doto :value-exists prn))
validate-message
(do
;; (notification/show! validate-message :warning)
:value-invalid)
(doto :value-invalid prn))
(nil? resolved-value)
nil
@ -505,8 +497,7 @@
[new-block
(outliner-core/block-with-updated-at
{:db/id (:db/id property)})]))]
{:block-id block-id
:tx-data tx-data}))))))
(d/transact! conn tx-data {:outliner-op :save-block})))))))
(defn add-existing-values-to-closed-values!
"Adds existing values as closed values and returns their new block uuids"

View File

@ -30,11 +30,9 @@
(defn- <upsert-closed-value!
"Create new closed value and returns its block UUID."
[property item]
(p/let [{:keys [block-id tx-data]} (db-property-handler/upsert-closed-value! property item)]
(p/do!
(when (seq tx-data) (db/transact! (state/get-current-repo) tx-data {:outliner-op :upsert-closed-value}))
(when (seq tx-data) (re-init-commands! property))
block-id)))
(p/do!
(db-property-handler/upsert-closed-value! (:db/ident property) item)
(re-init-commands! property)))
(rum/defc item-value
[type *value]