1
0
Эх сурвалжийг харах

enhance(plugin): more args extensible for the exported editor component

charlie 1 жил өмнө
parent
commit
de9940dc9b

+ 2 - 0
libs/src/LSPlugin.ts

@@ -623,6 +623,8 @@ export interface IEditorProxy extends Record<string, any> {
 
   getSelectedBlocks: () => Promise<Array<BlockEntity> | null>
 
+  clearSelectedBlocks: () => Promise<void>
+
   /**
    * get all blocks of the current page as a tree structure
    *

+ 1 - 1
libs/src/modules/LSPlugin.Experiments.ts

@@ -21,7 +21,7 @@ export class LSPluginExperiments {
   get Components() {
     const exper = this.ensureHostScope().logseq.sdk.experiments
     return {
-      Editor: exper.cp_page_editor as (props: { page: string }) => any
+      Editor: exper.cp_page_editor as (props: { page: string } & any) => any
     }
   }
 

+ 1 - 1
src/main/frontend/components/block.cljs

@@ -2551,7 +2551,7 @@
                                                     (js/setTimeout (fn []
                                                                      (editor-handler/escape-editing select?)
                                                                      (some-> config :on-escape-editing
-                                                                       (apply []))) 10))))}
+                                                                       (apply [(str uuid) (= event :esc)]))) 10))))}
                            edit-input-id
                            config))]
           [:div.flex.flex-1.flex-row.gap-1.items-start

+ 2 - 2
src/main/frontend/components/page.cljs

@@ -450,7 +450,7 @@
                  page-name' (get-sanity-page-name state page-name)]
              (db-async/<get-block (state/get-current-repo) page-name')
              (assoc state ::page-name page-name')))}
-  [state {:keys [repo page-name preview? sidebar?] :as option}]
+  [state {:keys [repo page-name config preview? sidebar?] :as option}]
   (let [loading? (when (::page-name state)  (state/sub-async-query-loading (::page-name state)))]
     (when-let [path-page-name (get-path-page-name state page-name)]
       (let [current-repo (state/sub :git/current-repo)
@@ -537,7 +537,7 @@
                      (let [_ (and block? page (reset! *current-block-page (:block/name (:block/page page))))
                            _ (when (and block? (not page))
                                (route-handler/redirect-to-page! @*current-block-page))]
-                       (page-blocks-cp repo page {:sidebar? sidebar? :whiteboard? whiteboard?})))]])
+                       (page-blocks-cp repo page (merge config {:sidebar? sidebar? :whiteboard? whiteboard?}))))]])
 
                (when today?
                  (today-queries repo today? sidebar?))

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

@@ -546,6 +546,10 @@
                                                   (db-model/query-block-by-uuid)))))]
         (bean/->js (sdk-utils/normalize-keyword-for-json blocks))))))
 
+(def ^:export clear_selected_blocks
+  (fn []
+    (state/clear-selection!)))
+
 (def ^:export get_current_page
   (fn []
     (when-let [page (state/get-current-page)]

+ 8 - 3
src/main/logseq/sdk/experiments.cljs

@@ -21,10 +21,15 @@
 (defn ^:export cp_page_editor
   [^js props]
   (let [props1 (jsx->clj props)
-        name (some-> props1 :page)
+        page-name (some-> props1 :page)
         config (some-> props1 (dissoc :page))]
-    (when-let [entity (page/get-page-entity name)]
-      (page/page-blocks-cp (state/get-current-repo) entity config))))
+    (when-let [_entity (page/get-page-entity page-name)]
+      (page/page
+        {:repo (state/get-current-repo)
+         :page-name page-name
+         :preview? false
+         :sidebar? false
+         :config config}))))
 
 (defn ^:export register_fenced_code_renderer
   [pid type ^js opts]