Skip to content

Commit

Permalink
Dispatch custom event when ws opens
Browse files Browse the repository at this point in the history
  • Loading branch information
zampino committed Aug 2, 2023
1 parent 76fdd7d commit f923970
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 3 deletions.
4 changes: 2 additions & 2 deletions src/nextjournal/clerk/render/editor.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -5,6 +5,7 @@
["@codemirror/view" :refer [keymap placeholder]]
[applied-science.js-interop :as j]
[clojure.string :as str]
[goog.events]
[nextjournal.clerk.parser :as parser]
[nextjournal.clerk.render :as render]
[nextjournal.clerk.render.code :as code]
Expand Down Expand Up @@ -220,8 +221,7 @@
{:key "Escape"
:run #(reset! !show-docstring? false)}]))]))
@!container-el))]
;; FIXME! we need a callback on ws ready
(js/setTimeout #(on-eval view) 500)
(goog.events/listenOnce js/window "clerk.wsopen" #(on-eval view) false)
#(.destroy view))))
(code/use-dark-mode !view)
[:<>
Expand Down
5 changes: 4 additions & 1 deletion src/nextjournal/clerk/sci_env.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -14,6 +14,7 @@
[clojure.string :as str]
[edamame.core :as edamame]
[goog.object]
[goog.events]
[nextjournal.clerk.cherry-env :as cherry-env]
[nextjournal.clerk.parser]
[nextjournal.clerk.render :as render]
Expand Down Expand Up @@ -205,7 +206,9 @@
(swap! render/!doc assoc ::connection-status "Reconnecting…"))
(let [ws (js/WebSocket. ws-url)]
(set! (.-onmessage ws) onmessage)
(set! (.-onopen ws) (fn [e] (swap! render/!doc dissoc ::connection-status ::failed-attempts)))
(set! (.-onopen ws) (fn [e]
(swap! render/!doc dissoc ::connection-status ::failed-attempts)
(.dispatchEvent js/window (new js/Event "clerk.wsopen"))))
(set! (.-onclose ws) (fn [e]
(let [timeout (reconnect-timeout (::failed-attempts @render/!doc 0))]
(swap! render/!doc
Expand Down

0 comments on commit f923970

Please sign in to comment.