Browse Source

improve(plugin): add sidebar related apis

charlie 3 năm trước cách đây
mục cha
commit
8320315dcc

+ 2 - 0
libs/src/LSPlugin.ts

@@ -230,6 +230,8 @@ export interface IAppProxy {
   showMsg: (content: string, status?: 'success' | 'warning' | 'error' | string) => void
   setZoomFactor: (factor: number) => void
   setFullScreen: (flag: boolean | 'toggle') => void
+  setLeftSidebarVisible: (flag: boolean | 'toggle') => void
+  setRightSidebarVisible: (flag: boolean | 'toggle') => void
 
   registerUIItem: (
     type: 'toolbar' | 'pagebar',

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

@@ -21,11 +21,6 @@
   (when-let [elem (gdom/getElement "close-left-bar")]
     (.click elem)))
 
-(defn toggle-left-sidebar!
-  []
-  (state/set-left-sidebar-open!
-    (not (@state/state :ui/left-sidebar-open?))))
-
 (defn hide-right-sidebar
   []
   (state/hide-right-sidebar!))

+ 1 - 1
src/main/frontend/modules/shortcut/config.cljs

@@ -352,7 +352,7 @@
 
    :ui/toggle-left-sidebar          {:desc    "Toggle left sidebar"
                                      :binding "t l"
-                                     :fn      ui-handler/toggle-left-sidebar!}
+                                     :fn      state/toggle-left-sidebar!}
 
    :ui/toggle-help                  {:desc    "Toggle help"
                                      :binding "shift+/"

+ 5 - 0
src/main/frontend/state.cljs

@@ -1150,6 +1150,11 @@
   (storage/set "ls-left-sidebar-open?" (boolean value))
   (set-state! :ui/left-sidebar-open? value))
 
+(defn toggle-left-sidebar!
+  []
+  (set-left-sidebar-open!
+    (not (get-left-sidebar-open?))))
+
 (defn set-developer-mode!
   [value]
   (set-state! :ui/developer-mode? value)

+ 16 - 0
src/main/logseq/api.cljs

@@ -288,6 +288,22 @@
     (when (re-find #"https?://" url)
       (js/apis.openExternal url))))
 
+;; flag - boolean | 'toggle'
+(def ^:export set_left_sidebar_visible
+  (fn [flag]
+    (if (= flag "toggle")
+      (state/toggle-left-sidebar!)
+      (state/set-state! :ui/left-sidebar-open? (boolean flag)))
+    nil))
+
+;; flag - boolean | 'toggle'
+(def ^:export set_right_sidebar_visible
+  (fn [flag]
+    (if (= flag "toggle")
+      (state/toggle-sidebar-open?!)
+      (state/set-state! :ui/sidebar-open? (boolean flag)))
+    nil))
+
 (def ^:export push_state
   (fn [^js k ^js params ^js query]
     (rfe/push-state