-
Notifications
You must be signed in to change notification settings - Fork 0
/
dom.cljs
37 lines (27 loc) · 1.17 KB
/
dom.cljs
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
(ns roam-plugin-tools.dom
(:require [goog.dom :as gdom]))
;; LEFT SIDEBAR
(def sidebar (js/document.querySelector ".roam-sidebar-content"))
(def sidebar-top-row (js/document.querySelector ".top-row"))
(defn part-to-class [part]
(case part
:log-buttons [".log-button"]
:shortcuts [".starred-pages-wrapper"]
:logo ["#roam-sidebar-logo"]
[".log-button" ".starred-pages-wrapper" "#roam-sidebar-logo"]))
(defn insert-custom-sidebar-container-before! [part]
(let [csc (gdom/createDom "div" #js{:id "roam-custom-sidebar-container"})]
(if-let [before-el (js/document.querySelector (first (part-to-class part)))]
(.insertBefore sidebar csc before-el)
(.appendChild sidebar csc))))
(defn sidebar-remove! [parts]
"parts can be :log-buttons, :shortcuts, :logo or :all (always except top-row though)"
(->> parts
(mapcat part-to-class)
(mapv #(. (. js/document -querySelectorAll) call js/document %))
(mapv #(mapv gdom/removeNode %))))
;; MAIN
(def roam-main (js/document.querySelector ".roam-main"))
(def roam-body-main (js/document.querySelector ".roam-body-main"))
(defn body-main-clear! []
(gdom/removeChildren (roam-body-main)))