Przeglądaj źródła

enhance: support editor ref to export code mirror instance

charlie 1 rok temu
rodzic
commit
7076bfa08e
1 zmienionych plików z 4 dodań i 1 usunięć
  1. 4 1
      src/main/frontend/extensions/code.cljs

+ 4 - 1
src/main/frontend/extensions/code.cljs

@@ -403,6 +403,7 @@
                               (get-in config [:block :block/uuid])))
                               (get-in config [:block :block/uuid])))
         _ (state/set-state! :editor/code-mode? false)
         _ (state/set-state! :editor/code-mode? false)
         original-mode (get attr :data-lang)
         original-mode (get attr :data-lang)
+        *editor-ref (get attr :editor-ref)
         mode (if (:file? config)
         mode (if (:file? config)
                (text->cm-mode original-mode :ext) ;; ref: src/main/frontend/components/file.cljs
                (text->cm-mode original-mode :ext) ;; ref: src/main/frontend/components/file.cljs
                (text->cm-mode original-mode :name))
                (text->cm-mode original-mode :name))
@@ -435,7 +436,9 @@
                             {:hintOptions {}})
                             {:hintOptions {}})
                           user-options)
                           user-options)
         editor (when textarea
         editor (when textarea
-                 (from-textarea textarea (clj->js cm-options)))]
+                 (from-textarea textarea (clj->js cm-options)))
+        _ (when (and editor *editor-ref)
+            (reset! *editor-ref editor))]
     (when editor
     (when editor
       (let [textarea-ref (rum/ref-node state textarea-ref-name)
       (let [textarea-ref (rum/ref-node state textarea-ref-name)
             element (.getWrapperElement editor)]
             element (.getWrapperElement editor)]