fix: regression on new, unused property displays blank type

in configure modal
pull/11196/head
Gabriel Horner 2024-04-10 09:23:51 -04:00
parent 3e351a4308
commit 22f2bccd2b
2 changed files with 36 additions and 32 deletions

View File

@ -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

View File

@ -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)