From 7a6972bc8971f50cb2de2a2fbb96550fe93cb669 Mon Sep 17 00:00:00 2001 From: rcmerci Date: Wed, 21 Jun 2023 00:25:02 +0800 Subject: [PATCH] update property edit --- src/electron/electron/handler.cljs | 2 +- src/main/frontend/components/block.cljs | 3 ++- src/main/frontend/components/property.cljs | 30 ++++++++++++++-------- 3 files changed, 23 insertions(+), 12 deletions(-) diff --git a/src/electron/electron/handler.cljs b/src/electron/electron/handler.cljs index 6f8a8e75676..22be96d57b4 100644 --- a/src/electron/electron/handler.cljs +++ b/src/electron/electron/handler.cljs @@ -375,7 +375,7 @@ (:block/page block) 1 (:block/name block) 2 (:file/content block) 3 - (= :property (:block/type block)) 6 + (= "property" (:block/type block)) 6 :else 5)) (defmethod handle :db-transact-data [_window [_ repo data-str]] diff --git a/src/main/frontend/components/block.cljs b/src/main/frontend/components/block.cljs index c382ceb4d34..f60d03a0ab1 100644 --- a/src/main/frontend/components/block.cljs +++ b/src/main/frontend/components/block.cljs @@ -2879,8 +2879,9 @@ (when @*show-right-menu? (block-right-menu config block edit?))] + (when (config/db-based-graph? repo) - (property-component/properties-area block (:block/properties block))) + (property-component/properties-area block (:block/properties block))) (block-children config block children collapsed?) diff --git a/src/main/frontend/components/property.cljs b/src/main/frontend/components/property.cljs index 8addd1d78eb..e4c43bb09e0 100644 --- a/src/main/frontend/components/property.cljs +++ b/src/main/frontend/components/property.cljs @@ -222,25 +222,35 @@ ;; (properties-area entity properties refs-properties' block-components-m))) (rum/defcs properties-area < + rum/static (rum/local nil ::new-property) - rum/reactive - [state block properties] + (rum/local nil ::properties) + {:will-mount (fn [state] + (reset! (::properties state) (second (:rum/args state))) + state)} + [state block _properties] (let [*new-property (::new-property state) + *properties (::properties state) repo (state/get-current-repo)] [:div.ls-properties-area.pl-6 - (when (seq properties) - (prn :properties properties) + (when (seq @*properties) [:div - (for [[prop-uuid-or-built-in-prop v] properties] - (if (uuid? prop-uuid-or-built-in-prop) - (when-let [property-class (db/pull [:block/uuid prop-uuid-or-built-in-prop])] + (for [[prop-uuid-or-built-in-prop v] @*properties] + (if (and (string? prop-uuid-or-built-in-prop) + (util/uuid-string? prop-uuid-or-built-in-prop)) + (when-let [property-class (db/pull [:block/uuid (uuid prop-uuid-or-built-in-prop)])] [:div [:a.mr-2 (:property/name property-class)] - [:input {:value v}]]) + [:span v] + [:a.ml-8 {:on-click + (fn [] + (property-handler/remove-property! repo block prop-uuid-or-built-in-prop) + (reset! *properties (:block/properties (db/pull [:block/uuid (:block/uuid block)]))))} + "DEL"]]) ;; builtin [:div [:a.mr-2 (str prop-uuid-or-built-in-prop)] - [:input {:value v}]]))]) + [:span v]]))]) (if (nil? @*new-property) [:a {:title "Add another value" :on-click (fn [] (reset! *new-property {}))} @@ -251,7 +261,7 @@ [:input.block-properties {:on-change #(swap! *new-property assoc :v (util/evalue %))}] [:a {:on-click (fn [] (when (and (:k @*new-property) (:k @*new-property)) - (prn :*new-property @*new-property) (property-handler/add-property! repo block (:k @*new-property) (:v @*new-property)) + (reset! *properties (:block/properties (db/pull [:block/uuid (:block/uuid block)]))) (reset! *new-property nil)))} "Save"]])]))