feat: add collapse all binding (#2186)

A shortcut to collapse all top level blocks. It helps in getting
a quick summary of document, especially when there are outlines.

Co-authored-by: Nikhil Warke <nwarke@protonmail.com>
This commit is contained in:
Nikhil Warke
2021-06-16 08:44:06 +05:30
committed by GitHub
parent 0c5b59077f
commit 5446c17f58
2 changed files with 20 additions and 0 deletions

View File

@@ -3027,3 +3027,18 @@
(recur (dec level))
(doseq [{:block/keys [uuid]} blocks-to-collapse]
(collapse-block! uuid)))))))))
(defn collapse-all!
[]
(let [blocks-with-level
(all-blocks-with-level {:collapse? true})
level 1]
(let [blocks-to-collapse
(->> blocks-with-level
(filter (fn [b] (= (:block/level b) level)))
(remove (fn [b]
(or (not (db-model/has-children? (:block/uuid b)))
(-> b :block/properties :collapsed)))))]
(when (seq blocks-to-collapse)
(doseq [{:block/keys [uuid]} blocks-to-collapse]
(collapse-block! uuid))))))