Browse Source

improve(plugin): api types of `setBlockCollapsed`

charlie 3 years ago
parent
commit
ad17bc97e1
2 changed files with 8 additions and 6 deletions
  1. 1 1
      libs/src/LSPlugin.ts
  2. 7 5
      src/main/logseq/api.cljs

+ 1 - 1
libs/src/LSPlugin.ts

@@ -549,7 +549,7 @@ export interface IEditorProxy extends Record<string, any> {
 
   setBlockCollapsed: (
     uuid: BlockUUID,
-    opts?: { flag: boolean | 'toggle' }
+    opts: { flag: boolean | 'toggle' } | boolean | 'toggle'
   ) => Promise<void>
 
   getPage: (

+ 7 - 5
src/main/logseq/api.cljs

@@ -543,13 +543,15 @@
 (def ^:export set_block_collapsed
   (fn [block-uuid ^js opts]
     (when-let [block (db-model/get-block-by-uuid block-uuid)]
-      (let [{:keys [flag]} (bean/->clj opts)
+      (let [opts       (bean/->clj opts)
+            opts       (if (or (string? opts) (boolean? opts)) {:flag opts} opts)
+            {:keys [flag]} opts
             block-uuid (uuid block-uuid)
-            flag (if (= "toggle" flag)
-                   (not (util/collapsed? block))
-                   (boolean flag))]
+            flag       (if (= "toggle" flag)
+                         (not (util/collapsed? block))
+                         (boolean flag))]
         (if flag (editor-handler/collapse-block! block-uuid)
-                 (editor-handler/expand-block! block-uuid))
+          (editor-handler/expand-block! block-uuid))
         nil))))
 
 (def ^:export upsert_block_property