Просмотр исходного кода

fix: regression on new, unused property displays blank type

in configure modal
Gabriel Horner 1 год назад
Родитель
Сommit
22f2bccd2b
2 измененных файлов с 36 добавлено и 32 удалено
  1. 36 31
      src/main/frontend/components/property.cljs
  2. 0 1
      src/main/frontend/db/async.cljs

+ 36 - 31
src/main/frontend/components/property.cljs

@@ -139,39 +139,44 @@
                                   :value type})))]
     [:div {:class (if in-block-container? "flex flex-1" "flex items-center col-span-2")}
      (shui/select
-      {:default-open (boolean default-open?)
-       :disabled disabled?
-       :on-value-change
-       (fn [v]
-         (let [type (keyword (string/lower-case v))
-               update-schema-fn (apply comp
-                                       #(assoc % :type type)
+      (cond->
+       {:default-open (boolean default-open?)
+        :disabled disabled?
+        :on-value-change
+        (fn [v]
+          (let [type (keyword (string/lower-case v))
+                update-schema-fn (apply comp
+                                        #(assoc % :type type)
                                              ;; always delete previous closed values as they
                                              ;; are not valid for the new type
-                                       #(dissoc % :values)
-                                       (keep
-                                        (fn [attr]
-                                          (when-not (db-property-type/property-type-allows-schema-attribute? type attr)
-                                            #(dissoc % attr)))
-                                        [:cardinality :classes :position]))]
-           (when *property-schema
-             (swap! *property-schema update-schema-fn))
-           (let [schema (or (and *property-schema @*property-schema)
-                            (update-schema-fn property-schema))
-                 repo (state/get-current-repo)]
-             (p/do!
-              (when block
-                (pv/exit-edit-property))
-              (when *show-new-property-config?
-                (reset! *show-new-property-config? false))
-              (components-pu/update-property! property property-name schema)
-              (when block
-                (let [id (str "ls-property-" (:db/id block) "-" (:db/id property) "-editor")]
-                  (state/set-state! :editor/editing-property-value-id
-                                    {id true}))
-                (property-handler/set-block-property! repo (:block/uuid block)
-                                                      (:db/ident (db/entity [:block/original-name property-name]))
-                                                      (if (= type :default) "" :logseq.property/empty-placeholder)))))))}
+                                        #(dissoc % :values)
+                                        (keep
+                                         (fn [attr]
+                                           (when-not (db-property-type/property-type-allows-schema-attribute? type attr)
+                                             #(dissoc % attr)))
+                                         [:cardinality :classes :position]))]
+            (when *property-schema
+              (swap! *property-schema update-schema-fn))
+            (let [schema (or (and *property-schema @*property-schema)
+                             (update-schema-fn property-schema))
+                  repo (state/get-current-repo)]
+              (p/do!
+               (when block
+                 (pv/exit-edit-property))
+               (when *show-new-property-config?
+                 (reset! *show-new-property-config? false))
+               (components-pu/update-property! property property-name schema)
+               (when block
+                 (let [id (str "ls-property-" (:db/id block) "-" (:db/id property) "-editor")]
+                   (state/set-state! :editor/editing-property-value-id
+                                     {id true}))
+                 (property-handler/set-block-property! repo (:block/uuid block)
+                                                       (:db/ident (db/entity [:block/original-name property-name]))
+                                                       (if (= type :default) "" :logseq.property/empty-placeholder)))))))}
+
+        ;; only set when in property configure modal
+        (and *property-name (:type property-schema))
+        (assoc :default-value (name (:type property-schema))))
       (shui/select-trigger
        {:class "!px-2 !py-0 !h-8"}
        (shui/select-value

+ 0 - 1
src/main/frontend/db/async.cljs

@@ -16,7 +16,6 @@
             [cljs-time.core :as t]
             [cljs-time.format :as tf]
             [logseq.db :as ldb]
-            [clojure.string :as string]
             [logseq.db.frontend.property :as db-property]))
 
 (def <q db-async-util/<q)