sliva/src/sliva/core.cljs

34 lines
1.0 KiB
Clojure

(ns sliva.core
(:require [secretary.core :as secretary :refer-macros [defroute]]
[reagent.core :as reagent]
[sliva.socket :refer [websocket-init click-test]]
[sliva.data :refer [appstate]]
[sliva.routes :refer [app-routes]]
[sliva.pages.hub :refer [hub]]
[sliva.pages.visual :refer [visual]])
(:require-macros [cljs.core.async.macros :refer [go go-loop]]))
(enable-console-print!)
(console.log "Hello, Sky!")
;; Page switching
(defmulti current-page #(@appstate :page))
(defmethod current-page :hub [] [hub])
(defmethod current-page :visual [] [visual])
;; On figwheel reload do this (reload routes, render currently active page)
(defn init-app []
(app-routes)
(console.log "App (re)init!")
(reagent/render [current-page] (.getElementById js/document "container")))
;; Vstopna tocka
(aset js/document "onreadystatechange"
(fn []
(if (= (.-readyState js/document) "complete")
(do
(websocket-init)
(click-test)
(init-app)))))