浏览代码

fix(plugin): props for the sdk editor component

charlie 1 年之前
父节点
当前提交
956f380ddc
共有 2 个文件被更改,包括 17 次插入13 次删除
  1. 2 13
      src/main/logseq/sdk/experiments.cljs
  2. 15 0
      src/main/logseq/sdk/utils.cljs

+ 2 - 13
src/main/logseq/sdk/experiments.cljs

@@ -2,25 +2,14 @@
   (:require [frontend.state :as state]
             [frontend.components.page :as page]
             [frontend.util :as util]
+            [logseq.sdk.utils :as sdk-util]
             [camel-snake-kebab.core :as csk]
             [goog.object :as gobj]
             [frontend.handler.plugin :as plugin-handler]))
 
-(defn- jsx->clj
-  [^js obj]
-  (if (js/goog.isObject obj)
-    (-> (fn [result k]
-          (let [v (gobj/get obj k)
-                k (keyword (csk/->kebab-case k))]
-            (if (= "function" (goog/typeOf v))
-              (assoc result k v)
-              (assoc result k (jsx->clj v)))))
-      (reduce {} (gobj/getKeys obj)))
-    obj))
-
 (defn ^:export cp_page_editor
   [^js props]
-  (let [props1 (jsx->clj props)
+  (let [props1 (sdk-util/jsx->clj props)
         page-name (some-> props1 :page)
         linked-refs? (some-> props1 :include-linked-refs)
         unlinked-refs? (some-> props1 :include-unlinked-refs)

+ 15 - 0
src/main/logseq/sdk/utils.cljs

@@ -2,6 +2,7 @@
   (:require [clojure.walk :as walk]
             [camel-snake-kebab.core :as csk]
             [frontend.util :as util]
+            [goog.object :as gobj]
             [cljs-bean.core :as bean]))
 
 (defn normalize-keyword-for-json
@@ -31,6 +32,20 @@
     :else
     (throw (js/Error. (str s " is not a valid UUID string.")))))
 
+(defn jsx->clj
+  [^js obj]
+  (if (js/goog.isObject obj)
+    (-> (fn [result k]
+          (let [v (gobj/get obj k)
+                k (keyword (csk/->kebab-case k))]
+            (if (= "function" (goog/typeOf v))
+              (assoc result k v)
+              (assoc result k (jsx->clj v)))))
+      (reduce {} (gobj/getKeys obj)))
+    obj))
+
 (def ^:export to-clj bean/->clj)
+(def ^:export jsx-to-clj jsx->clj)
+(def ^:export to-js bean/->js)
 (def ^:export to-keyword keyword)
 (def ^:export to-symbol symbol)