Skip to content

Instantly share code, notes, and snippets.

@nivekuil
Created March 10, 2023 02:37
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save nivekuil/a839c346eedb2b73f54fcc24dbdad9a1 to your computer and use it in GitHub Desktop.
Save nivekuil/a839c346eedb2b73f54fcc24dbdad9a1 to your computer and use it in GitHub Desktop.
electric react
(e/defn Main [dom-root]
(binding [e.d/node dom-root]
(e.d/pre (e.d/text "hi"))))
(defn start-electric [dom-root electric-component]
(hooks/use-effect (fn []
(if dom-root
(binding [hyperfiddle.electric-client/*ws-server-url* "ws://the-endpoint"]
(let [electric-main (e/boot (electric-component. dom-root))
reactor (electric-main
#(js/console.log "Reactor success:" %)
(fn [error]
(case (:hyperfiddle.electric/type (ex-data error))
:hyperfiddle.electric-client/stale-client (do (js/console.log "Server and client version mismatch. Refreshing page.")
(.reload (.-location js/window)))
(js/console.error "Reactor failure:" error))))]
#(reactor)))
js/undefined))
[dom-root]))
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment