Explorar o código

fix(api): adding tag property using api produces empty tag

fixes https://github.com/logseq/db-test/issues/390
Tienson Qin hai 1 mes
pai
achega
70cf508ec0
Modificáronse 1 ficheiros con 21 adicións e 11 borrados
  1. 21 11
      deps/outliner/src/logseq/outliner/property.cljs

+ 21 - 11
deps/outliner/src/logseq/outliner/property.cljs

@@ -306,16 +306,25 @@
 
 (defn- get-property-value-eid
   [db property-id raw-value]
-  (first
-   (d/q '[:find [?v ...]
-          :in $ ?property-id ?raw-value
-          :where
-          [?b ?property-id ?v]
-          (or [?v :block/title ?raw-value]
-              [?v :logseq.property/value ?raw-value])]
-        db
-        property-id
-        raw-value)))
+  (if (= property-id :block/tags)
+    (first
+     (d/q '[:find [?v ...]
+            :in $ ?title
+            :where
+            [?v :block/title ?title]
+            [?v :block/tags :logseq.class/Tag]]
+          db
+          raw-value))
+    (first
+     (d/q '[:find [?v ...]
+            :in $ ?property-id ?raw-value
+            :where
+            [?b ?property-id ?v]
+            (or [?v :block/title ?raw-value]
+                [?v :logseq.property/value ?raw-value])]
+          db
+          property-id
+          raw-value))))
 
 (defn- find-or-create-property-value
   "Find or create a property value. Only to be used with properties that have ref types"
@@ -491,7 +500,8 @@
                         [:db/retract (:db/id block) :block/tags :logseq.class/Task]]
                        {:outliner-op :save-block})
 
-        (= (:logseq.property/default-value property) (get block property-id))
+        (and (:logseq.property/default-value property)
+             (= (:logseq.property/default-value property) (get block property-id)))
         (ldb/transact! conn
                        [{:db/id (:db/id block)
                          property-id :logseq.property/empty-placeholder}]