diff --git a/src/main/frontend/components/editor.cljs b/src/main/frontend/components/editor.cljs index c156acdc10..22e68411e8 100644 --- a/src/main/frontend/components/editor.cljs +++ b/src/main/frontend/components/editor.cljs @@ -341,7 +341,7 @@ (let [page-entity (db/entity [:block/uuid page]) repo (state/sub :git/current-repo) format (get page-entity :block/format :markdown) - block (db-model/query-block-by-uuid uuid) + block (db-model/get-block-by-uuid uuid) content (:block/title block)] (when-not (string/blank? content) [:.py-2 (search/block-search-result-item repo uuid format content q :block)]))) diff --git a/src/main/logseq/api.cljs b/src/main/logseq/api.cljs index f7645521e2..d4f09425e0 100644 --- a/src/main/logseq/api.cljs +++ b/src/main/logseq/api.cljs @@ -65,17 +65,10 @@ ;; Alert: this namespace shouldn't invoke any reactive queries -(defn- > blocks (map (fn [^js el] (some-> (.getAttribute el "blockid") - (db-model/query-block-by-uuid) - (api-block/into-properties)))))] - (bean/->js (sdk-utils/normalize-keyword-for-json blocks)))))) + (db-model/get-block-by-uuid)))))] + (db-api/result->js blocks))))) (def ^:export clear_selected_blocks (fn [] @@ -613,17 +605,15 @@ (def ^:export get_current_page (fn [] (when-let [page (state/get-current-page)] - (p/let [page (> page (api-block/into-properties (state/get-current-repo))))] - (bean/->js (sdk-utils/normalize-keyword-for-json page))))))) + (p/let [page (js page)))))) (defn ^:export get_page [id-or-page-name] - (p/let [page (> page (api-block/into-properties (state/get-current-repo))))] - (bean/->js (sdk-utils/normalize-keyword-for-json page))))) + (p/let [page (js page)))) ;; FIXME: this doesn't work because the ui doesn't have all pages (defn ^:export get_all_pages @@ -646,7 +636,7 @@ (let [properties (bean/->clj properties) db-based? (db-graph?) {:keys [redirect format journal schema]} (bean/->clj opts)] - (p/let [page ( (or page new-page) - :db/id - (db-utils/pull) - (sdk-utils/normalize-keyword-for-json) - (bean/->js)))))) + db-api/result->js))))) (defn ^:export create_journal_page [^js date] @@ -720,9 +707,7 @@ (throw (js/Error. "Page title or block UUID shouldn't be empty."))) (p/let [block? (util/uuid-string? (str block-uuid-or-page-name)) - block (clj opts) @@ -803,7 +788,7 @@ (def ^:export remove_block (fn [block-uuid ^js _opts] (p/let [repo (state/get-current-repo) - _ (clj opts)] (when block (if db-based? @@ -824,8 +809,8 @@ (def ^:export move_block (fn [src-block-uuid target-block-uuid ^js opts] - (p/let [_ (clj opts) move-to (cond (boolean before) @@ -842,7 +827,8 @@ (def ^:export get_block (fn [id ^js opts] - (p/let [_ (db-async/clj opts) opts (if (or (string? opts) (boolean? opts)) {:flag opts} opts) {:keys [flag]} opts @@ -952,7 +938,7 @@ opts (bean/->clj options) block-uuid (sdk-utils/uuid-or-throw-error block-uuid) repo (state/get-current-repo) - block (db-async/ (if (keyword? keyname) (name keyname) keyname) (util/trim-safe)) value (bean/->clj value)] @@ -966,7 +952,7 @@ (this-as this (p/let [key (api-block/sanitize-user-property-name key) block-uuid (sdk-utils/uuid-or-throw-error block-uuid) - _ (db-async/ block-uuid (db-model/get-block-by-uuid) (:block/properties))] (when (seq properties) (let [key (api-block/sanitize-user-property-name key) @@ -1007,16 +993,16 @@ (def ^:export get_block_properties (fn [block-uuid] (p/let [block-uuid (sdk-utils/uuid-or-throw-error block-uuid) - _ (db-async/js (sdk-utils/normalize-keyword-for-json properties))))))) + (db-api/result->js properties)))))) (defn ^:export get_page_properties [id-or-page-name] - (p/let [page (js (sdk-utils/normalize-keyword-for-json pages))))) -(defn- first-child-of-block - [block] - (when-let [children (:block/_parent block)] - (some-> children (db-model/sort-by-order) (first)))) - (defn ^:export prepend_block_in_page [uuid-or-page-name content ^js opts] - (p/let [_ ( (api-block/clj opts) - [block opts] (if block' [block' (assoc opts :before true :sibling true)] [block opts]) - target (str (:block/uuid block))] - (insert_block target content (bean/->js opts))))))))) + (p/let [block (clj opts) + opts' (assoc opts :before false :sibling false)] + (insert_block (str (:block/uuid block)) content (bean/->js opts')))))) (defn ^:export append_block_in_page [uuid-or-page-name content ^js opts] @@ -1093,11 +1071,13 @@ uuid-or-page-name)] (p/let [_ ( repo (config/db-based-graph?)) - (let [e (db/entity (:db/id block)) - props (-> (:block/properties e) - sdk-utils/remove-hidden-properties)] - (-> (entity->map block) - (assoc :block/properties props))) - block))) - (defn parse-property-json-value-if-need [ident property-value] (when-let [prop (and (string? property-value) @@ -217,6 +206,5 @@ ;; attached shallow children (assoc block :block/children (map #(list :uuid (:block/uuid %)) - (db/get-block-immediate-children repo uuid)))) - block (into-properties repo block)] + (db/get-block-immediate-children repo uuid))))] (bean/->js (sdk-utils/normalize-keyword-for-json block))))))) diff --git a/src/main/logseq/api/db.cljs b/src/main/logseq/api/db.cljs index 5d82dc8c98..aa29763f64 100644 --- a/src/main/logseq/api/db.cljs +++ b/src/main/logseq/api/db.cljs @@ -19,8 +19,7 @@ [logseq.sdk.utils :as sdk-utils] [promesa.core :as p])) - -(defn- result->js +(defn result->js [result] (-> result sdk-utils/normalize-keyword-for-json