Browse Source

fix: remember right sidebar width whenever its width is changed

Peng Xiao 3 years ago
parent
commit
a816143235

+ 2 - 1
src/main/frontend/components/right_sidebar.cljs

@@ -186,7 +186,8 @@
                          right-el (js/document.getElementById "right-sidebar")]
                      (when right-el
                        (let [width (str (* right-el-ratio 100) "%")]
-                         (.setProperty (.-style right-el) "width" width)))))}}))
+                         (.setProperty (.-style right-el) "width" width)
+                         (ui-handler/persist-right-sidebar-width!)))))}}))
              (.styleCursor false)
              (.on "dragstart" #(.. js/document.documentElement -classList (add "is-resizing-buf")))
              (.on "dragend" #(.. js/document.documentElement -classList (remove "is-resizing-buf")))))

+ 5 - 7
src/main/frontend/handler/ui.cljs

@@ -26,11 +26,11 @@
   (or (.. (js/document.getElementById "right-sidebar") -style -width)
       (get-css-var-value "--right-sidebar-width")))
 
-(defn- persist-right-sidebar-width!
+(defn persist-right-sidebar-width!
   []
   (storage/set "ls-right-sidebar-width" (get-right-sidebar-width)))
 
-(defn- restore-right-sidebar-width!
+(defn restore-right-sidebar-width!
   []
   (when-let [width (storage/get "ls-right-sidebar-width")]
     (.setProperty (.-style (js/document.getElementById "right-sidebar")) "width" width)))
@@ -38,14 +38,11 @@
 (defn close-left-sidebar!
   []
   (when-let [elem (gdom/getElement "close-left-bar")]
-    (persist-right-sidebar-width!)
     (.click elem)))
 
 (defn toggle-right-sidebar!
   []
-  (if (:ui/sidebar-open? @state/state) 
-    (persist-right-sidebar-width!) 
-    (restore-right-sidebar-width!))
+  (when-not (:ui/sidebar-open? @state/state) (restore-right-sidebar-width!))
   (state/toggle-sidebar-open?!))
 
 (defn persist-right-sidebar-state!
@@ -63,7 +60,8 @@
       (when open?
         (state/set-state! :ui/sidebar-open? open?)
         (state/set-state! :sidebar/blocks blocks)
-        (state/set-state! :ui/sidebar-collapsed-blocks collapsed)))))
+        (state/set-state! :ui/sidebar-collapsed-blocks collapsed)
+        (restore-right-sidebar-width!)))))
 
 (defn toggle-contents!
   []