Rename temp :block keys to be explicit about their use

:block is a heavily used namespace. We should at least
be explicit about keys that aren't being transacted
pull/9525/head
Gabriel Horner 2023-05-23 11:44:05 -04:00 committed by Gabriel Horner
parent 33285a354d
commit df2edd44ac
6 changed files with 21 additions and 17 deletions

View File

@ -208,7 +208,7 @@
pages (remove nil? pages)
pages (map (fn [page] (assoc page :block/uuid (d/squuid))) pages)
blocks (->> (remove nil? blocks)
(map (fn [b] (dissoc b :block/title :block/body :block/level :block/children :block/meta :block/anchor))))]
(map (fn [b] (dissoc b :block/title :block/body :block/level :block/children :block/meta))))]
[pages blocks])
(catch :default e
(log/error :exception e))))

View File

@ -1792,8 +1792,8 @@
(or
(and empty-content?
(not edit?)
(not (:block/top? block))
(not (:block/bottom? block))
(not (:block.temp/top? block))
(not (:block.temp/bottom? block))
(not (util/react *control-show?)))
(and doc-mode?
(not collapsed?)
@ -2780,7 +2780,8 @@
block (if ref?
(merge block (db/sub-block (:db/id block)))
block)
{:block/keys [uuid children pre-block? top? refs level format content properties]} block
{:block/keys [uuid children pre-block? refs level format content properties]} block
{:block.temp/keys [top?]} block
config (if navigated? (assoc config :id (str navigating-block)) config)
block (merge block (block/parse-title-and-body uuid format pre-block? content))
blocks-container-id (:blocks-container-id config)
@ -2923,7 +2924,7 @@
:should-update (fn [old-state new-state]
(let [compare-keys [:block/uuid :block/content :block/parent :block/collapsed?
:block/properties :block/left :block/children :block/_refs :block/bottom? :block/top?]
:block/properties :block/left :block/children :block/_refs :block.temp/bottom? :block.temp/top?]
config-compare-keys [:show-cloze? :own-order-list-type :own-order-list-index]
b1 (second (:rum/args old-state))
b2 (second (:rum/args new-state))
@ -3317,8 +3318,8 @@
[config blocks idx item]
(let [item (->
(dissoc item :block/meta)
(assoc :block/top? (zero? idx)
:block/bottom? (= (count blocks) (inc idx))))
(assoc :block.temp/top? (zero? idx)
:block.temp/bottom? (= (count blocks) (inc idx))))
config (assoc config :block/uuid (:block/uuid item))]
(rum/with-key (block-container config item)
(str (:blocks-container-id config) "-" (:block/uuid item)))))

View File

@ -341,8 +341,8 @@
(select-keys properties (property/hidden-properties))
(:block/properties block))]
(-> block
(dissoc :block/top?
:block/bottom?)
(dissoc :block.temp/top?
:block.temp/bottom?)
(assoc :block/content content
:block/properties new-properties)
(merge (if level {:block/level level} {})))))
@ -826,7 +826,7 @@
(let [prev-block' (if (seq (:block/_refs block-e))
(assoc prev-block
:block/uuid (:block/uuid block)
:block/additional-properties (:block/properties block))
:block.temp/additional-properties (:block/properties block))
prev-block)]
(delete-block-aux! block delete-children?)
(save-block! repo prev-block' new-content {:editor/op :delete}))
@ -2646,7 +2646,7 @@
edit-block' (if next-block-has-refs?
(assoc edit-block
:block/uuid (:block/uuid next-block)
:block/additional-properties (dissoc (:block/properties next-block) :block/uuid))
:block.temp/additional-properties (dissoc (:block/properties next-block) :block/uuid))
edit-block)]
(outliner-tx/transact! transact-opts
(delete-block-aux! next-block false)
@ -2691,7 +2691,7 @@
repo (state/get-current-repo)
top-block? (= (:block/left block) (:block/page block))
single-block? (inside-of-single-block (.-target e))
root-block? (= (:block/container block) (str (:block/uuid block)))]
root-block? (= (:block.temp/container block) (str (:block/uuid block)))]
(mark-last-input-time! repo)
(cond
(not= selected-start selected-end)

View File

@ -140,7 +140,7 @@
(assert (ds/outliner-txs-state? txs-state)
"db should be satisfied outliner-tx-state?")
(let [m (-> (:data this)
(dissoc :block/children :block/meta :block/top? :block/bottom?
(dissoc :block/children :block/meta :block.temp/top? :block.temp/bottom?
:block/title :block/body :block/level)
(gp-util/remove-nils))
m (if (state/enable-block-timestamps?) (block-with-timestamps m) m)

View File

@ -126,9 +126,12 @@
(let [txs (remove-nil-from-transaction txs)
txs (map (fn [m] (if (map? m)
(dissoc m
:block/children :block/meta :block/top? :block/bottom? :block/anchor
:block/title :block/body :block/level :block/container :db/other-tx
:block/additional-properties)
;; TODO: Move these attributes to :block.temp when the risk is lower
:block/children :block/meta :block/title :block/body :block/level
:db/other-tx
;; :block.temp is for temporary block attributes that aren't transacted
:block.temp/container :block.temp/top? :block.temp/bottom?
:block.temp/additional-properties)
m)) txs)
txs (cond-> txs
(:uuid-changed opts)

View File

@ -1808,7 +1808,7 @@ Similar to re-frame subscriptions"
container (util/get-block-container block-element)
block (if container
(assoc block
:block/container (gobj/get container "id"))
:block.temp/container (gobj/get container "id"))
block)
content (string/trim (or content ""))]
(swap! state