From 2a4e557b381b3e4eaecb3ef8de86a737b029d6ab Mon Sep 17 00:00:00 2001 From: Junyi Du Date: Fri, 28 Oct 2022 16:28:34 +0800 Subject: [PATCH] bug fix --- src/electron/electron/search.cljs | 2 +- src/main/frontend/search.cljs | 17 +++++++++-------- src/main/frontend/search/db.cljs | 11 +++++++---- 3 files changed, 17 insertions(+), 13 deletions(-) diff --git a/src/electron/electron/search.cljs b/src/electron/electron/search.cljs index 92fe0b28a..ed1aa0355 100644 --- a/src/electron/electron/search.cljs +++ b/src/electron/electron/search.cljs @@ -181,7 +181,7 @@ (defn delete-pages! [repo ids] (when-let [db (get-db repo)] - (let [sql (str "DELETE from blocks WHERE id IN " (clj-list->sql ids)) + (let [sql (str "DELETE from pages WHERE id IN " (clj-list->sql ids)) stmt (prepare db sql)] (.run ^object stmt)))) diff --git a/src/main/frontend/search.cljs b/src/main/frontend/search.cljs index 17dd1eb16..858fd2909 100644 --- a/src/main/frontend/search.cljs +++ b/src/main/frontend/search.cljs @@ -16,7 +16,8 @@ [frontend.util.property :as property] [goog.object :as gobj] [promesa.core :as p] - [clojure.set :as set])) + [clojure.set :as set] + [frontend.modules.datascript-report.core :as db-report])) (defn get-engine [repo] @@ -111,7 +112,7 @@ (protocol/transact-blocks! engine data))) (defn- transact-pages! - [repo data] + [repo data] (when-let [engine (get-engine repo)] (protocol/transact-pages! engine data))) @@ -268,11 +269,11 @@ (map :db/id) set)) -(defn- verify-pull - "Confirm that the page id & name of a page entity are up-to-date - Return a full page entity" - [page-id] - (when-let [page-entity (db/entity page-id)] +(defn- pull-page + "Return a page entity of the latest state from tx-report" + [tx-report page-id] + (when-let [page-entity (db-report/safe-pull (:db-after tx-report) '[:db/id :block/name :block/uuid + {:block/file [:db/id :file/content]}] page-id)] (when (:block/name page-entity) ;; confirm it's a page entity page-entity))) @@ -306,7 +307,7 @@ ;; update page indice (when (or (seq pages-to-add-id-set) (seq pages-to-remove-id-set) (seq updated-pages-id-set)) ;; when move op happens, no :block/content provided (let [pages-to-add-id-set (set/union updated-pages-id-set pages-to-add-id-set) - verified-pages (map verify-pull pages-to-add-id-set) + verified-pages (map (partial pull-page tx-report) pages-to-add-id-set) indice-pages (map #(when % (search-db/page->index %)) verified-pages) invalid-set (->> (map (fn [updated indiced] ;; get id of pages without valid page index (if indiced nil (:db/id updated))) diff --git a/src/main/frontend/search/db.cljs b/src/main/frontend/search/db.cljs index ae10dbb39..3595172df 100644 --- a/src/main/frontend/search/db.cljs +++ b/src/main/frontend/search/db.cljs @@ -4,7 +4,8 @@ [frontend.db :as db] [frontend.state :as state] [frontend.util :as util] - ["fuse.js" :as fuse])) + ["fuse.js" :as fuse] + [frontend.db.utils :as db-util])) ;; Notice: When breaking changes happen, bump version in src/electron/electron/search.cljs @@ -30,12 +31,13 @@ (defn page->index "Convert a page name to the index for searching (page content level) Generate index based on the DB content AT THE POINT OF TIME" - [{:block/keys [uuid name file] :as page}] - (when-let [content (:file/content file)] + [{:block/keys [uuid _name] :as page}] + (when-let [content (some-> (:block/file page) + (:file/content))] + (prn "content: " content) (when-not (> (count content) (* (max-len) 10)) {:id (:db/id page) :uuid (str uuid) - :name name :content (sanitize content)}))) (defn build-blocks-indice @@ -50,6 +52,7 @@ (defn build-pages-indice [repo] (->> (db/get-all-pages repo) + (map #(db/entity (:db/id %))) ;; get full file-content (map page->index) (remove nil?) (bean/->js)))