refactor: simplify dummy node

pull/1656/head
Tienson Qin 2021-04-07 20:17:43 +08:00
parent 9e1b5beb9d
commit 38b0ecae46
3 changed files with 15 additions and 28 deletions

View File

@ -613,7 +613,7 @@
(defn sort-by-left (defn sort-by-left
[blocks parent] [blocks parent]
;; (assert (= (count blocks) (count (set (map :block/left blocks)))) "Each block should have a different left node") (assert (= (count blocks) (count (set (map :block/left blocks)))) "Each block should have a different left node")
(let [left->blocks (reduce (fn [acc b] (assoc acc (:db/id (:block/left b)) b)) {} blocks)] (let [left->blocks (reduce (fn [acc b] (assoc acc (:db/id (:block/left b)) b)) {} blocks)]
(loop [block parent (loop [block parent
result []] result []]

View File

@ -66,34 +66,20 @@
([blocks format default-option {:keys [journal? page-name] ([blocks format default-option {:keys [journal? page-name]
:or {journal? false}}] :or {journal? false}}]
(let [format (or format (state/get-preferred-format) :markdown) (let [format (or format (state/get-preferred-format) :markdown)
blocks (if (and journal?
(seq blocks)
(when-let [title (second (first (:block/title (first blocks))))]
(date/valid-journal-title? title)))
(rest blocks)
blocks)
blocks (vec blocks)] blocks (vec blocks)]
(cond (if (seq blocks)
(and (seq blocks)
(or (and (> (count blocks) 1)
(:block/pre-block? (first blocks)))
(and (>= (count blocks) 1)
(not (:block/pre-block? (first blocks))))))
blocks blocks
(let [page-block (when page-name (db/entity [:block/name (string/lower-case page-name)]))
:else
(let [last-block (last blocks)
page-block (db/entity [:block/name (string/lower-case page-name)])
page-id {:db/id (:db/id page-block)} page-id {:db/id (:db/id page-block)}
dummy (merge last-block dummy (merge {:block/uuid (db/new-block-id)
{:block/uuid (db/new-block-id)
:block/left page-id :block/left page-id
:block/parent page-id :block/parent page-id
:block/title "" :block/title ""
:block/content "" :block/content ""
:block/format format} :block/format format
:block/dummy? true}
default-option)] default-option)]
(conj blocks dummy)))))) [dummy])))))
(defn filter-blocks (defn filter-blocks
[repo ref-blocks filters group-by-page?] [repo ref-blocks filters group-by-page?]

View File

@ -1520,13 +1520,14 @@
(let [opts {:key :block/change (let [opts {:key :block/change
:data blocks}] :data blocks}]
(db/refresh repo opts) (db/refresh repo opts)
(let [blocks (map (let [blocks (doall
(map
(fn [block] (fn [block]
(when-let [id (gobj/get block "id")] (when-let [id (gobj/get block "id")]
(when-let [block (gdom/getElement id)] (when-let [block (gdom/getElement id)]
(dom/add-class! block "selected noselect") (dom/add-class! block "selected noselect")
block))) block)))
blocks-dom-nodes)] blocks-dom-nodes))]
(state/set-selection-blocks! blocks))))) (state/set-selection-blocks! blocks)))))
(gdom/getElement "date-time-picker") (gdom/getElement "date-time-picker")