fix: remove needless db-graph? checks in outliner

This commit is contained in:
Gabriel Horner
2025-12-30 15:49:33 -05:00
parent b91b892181
commit 273eef800b

View File

@@ -10,14 +10,12 @@
[logseq.common.util.page-ref :as page-ref] [logseq.common.util.page-ref :as page-ref]
[logseq.common.uuid :as common-uuid] [logseq.common.uuid :as common-uuid]
[logseq.db :as ldb] [logseq.db :as ldb]
[logseq.db.common.entity-plus :as entity-plus]
[logseq.db.common.order :as db-order] [logseq.db.common.order :as db-order]
[logseq.db.frontend.class :as db-class] [logseq.db.frontend.class :as db-class]
[logseq.db.frontend.schema :as db-schema] [logseq.db.frontend.schema :as db-schema]
[logseq.db.sqlite.create-graph :as sqlite-create-graph] [logseq.db.sqlite.create-graph :as sqlite-create-graph]
[logseq.db.sqlite.util :as sqlite-util] [logseq.db.sqlite.util :as sqlite-util]
[logseq.graph-parser.block :as gp-block] [logseq.graph-parser.block :as gp-block]
[logseq.graph-parser.db :as gp-db]
[logseq.outliner.batch-tx :include-macros true :as batch-tx] [logseq.outliner.batch-tx :include-macros true :as batch-tx]
[logseq.outliner.datascript :as ds] [logseq.outliner.datascript :as ds]
[logseq.outliner.pipeline :as outliner-pipeline] [logseq.outliner.pipeline :as outliner-pipeline]
@@ -63,7 +61,7 @@
(if (de/entity? block) block (d/entity db (:db/id block)))))))) (if (de/entity? block) block (d/entity db (:db/id block))))))))
(defn- remove-orphaned-page-refs! (defn- remove-orphaned-page-refs!
[db {db-id :db/id} txs-state old-refs new-refs {:keys [db-graph?]}] [db {db-id :db/id} txs-state old-refs new-refs]
(when (not= old-refs new-refs) (when (not= old-refs new-refs)
(let [new-refs (set (map (fn [ref] (let [new-refs (set (map (fn [ref]
(or (:block/name ref) (or (:block/name ref)
@@ -76,10 +74,7 @@
(remove nil?)) (remove nil?))
orphaned-pages (when (seq old-pages) orphaned-pages (when (seq old-pages)
(ldb/get-orphaned-pages db {:pages old-pages (ldb/get-orphaned-pages db {:pages old-pages
:built-in-pages-names :built-in-pages-names sqlite-create-graph/built-in-pages-names
(if db-graph?
sqlite-create-graph/built-in-pages-names
gp-db/built-in-pages-names)
:empty-ref-f (fn [page] :empty-ref-f (fn [page]
(let [refs (:block/_refs page)] (let [refs (:block/_refs page)]
(and (or (zero? (count refs)) (and (or (zero? (count refs))
@@ -116,17 +111,15 @@
(swap! txs-state into txs)))) (swap! txs-state into txs))))
(defn- remove-orphaned-refs-when-save (defn- remove-orphaned-refs-when-save
[db txs-state block-entity m {:keys [db-graph?] :as opts}] [db txs-state block-entity m]
(let [remove-self-page #(remove (fn [b] (let [remove-self-page #(remove (fn [b]
(= (:db/id b) (:db/id (:block/page block-entity)))) %) (= (:db/id b) (:db/id (:block/page block-entity)))) %)
;; only provide content based refs for db graphs instead of removing ;; only provide content based refs for db graphs instead of removing
;; as calculating all non-content refs is more complex ;; as calculating all non-content refs is more complex
old-refs (if db-graph? old-refs (let [content-refs (set (outliner-pipeline/block-content-refs db block-entity))]
(let [content-refs (set (outliner-pipeline/block-content-refs db block-entity))] (filter #(contains? content-refs (:db/id %)) (:block/refs block-entity)))
(filter #(contains? content-refs (:db/id %)) (:block/refs block-entity)))
(remove-self-page (:block/refs block-entity)))
new-refs (remove-self-page (:block/refs m))] new-refs (remove-self-page (:block/refs m))]
(remove-orphaned-page-refs! db block-entity txs-state old-refs new-refs opts))) (remove-orphaned-page-refs! db block-entity txs-state old-refs new-refs)))
(defn- get-last-child-or-self (defn- get-last-child-or-self
[db block] [db block]
@@ -177,7 +170,7 @@
(defn- fix-tag-ids (defn- fix-tag-ids
"Fix or remove tags related when entered via `Escape`" "Fix or remove tags related when entered via `Escape`"
[m db {:keys [db-graph?]}] [m db]
(let [refs (set (keep :block/name (seq (:block/refs m)))) (let [refs (set (keep :block/name (seq (:block/refs m))))
tags (seq (:block/tags m))] tags (seq (:block/tags m))]
(if (and (seq refs) tags) (if (and (seq refs) tags)
@@ -200,7 +193,7 @@
tag)) tag))
tags) tags)
db-graph? true
;; Remove tags changing case with `Escape` ;; Remove tags changing case with `Escape`
((fn [tags'] ((fn [tags']
(let [ref-titles (->> (map :block/title (:block/refs m)) (let [ref-titles (->> (map :block/title (:block/refs m))
@@ -299,8 +292,7 @@
:or {retract-attributes? true}}] :or {retract-attributes? true}}]
(assert (ds/outliner-txs-state? *txs-state) (assert (ds/outliner-txs-state? *txs-state)
"db should be satisfied outliner-tx-state?") "db should be satisfied outliner-tx-state?")
(let [db-graph? (entity-plus/db-based-graph? db) (let [data (if (de/entity? this)
data (if (de/entity? this)
(assoc (.-kv ^js this) :db/id (:db/id this)) (assoc (.-kv ^js this) :db/id (:db/id this))
this) this)
data' (->> (dissoc data :block/properties) data' (->> (dissoc data :block/properties)
@@ -311,7 +303,7 @@
(dissoc :block/children :block/meta :block/unordered (dissoc :block/children :block/meta :block/unordered
:block.temp/ast-title :block.temp/ast-body :block/level :block.temp/load-status :block.temp/ast-title :block.temp/ast-body :block/level :block.temp/load-status
:block.temp/has-children?) :block.temp/has-children?)
(fix-tag-ids db {:db-graph? db-graph?})) (fix-tag-ids db))
(not collapse-or-expand?) (not collapse-or-expand?)
block-with-updated-at) block-with-updated-at)
db-id (:db/id this) db-id (:db/id this)
@@ -368,7 +360,7 @@
(update-page-when-save-block *txs-state block-entity m)) (update-page-when-save-block *txs-state block-entity m))
;; Remove orphaned refs from block ;; Remove orphaned refs from block
(when (and (:block/title m) (not= (:block/title m) (:block/title block-entity))) (when (and (:block/title m) (not= (:block/title m) (:block/title block-entity)))
(remove-orphaned-refs-when-save db *txs-state block-entity m {:db-graph? db-graph?}))) (remove-orphaned-refs-when-save db *txs-state block-entity m)))
;; handle others txs ;; handle others txs
(let [other-tx (:db/other-tx m)] (let [other-tx (:db/other-tx m)]