Files
2018-02-03 13:13:25 -05:00

49 lines
1.1 KiB
Clojure

(ns website.core
(:require [reagent.core :as reagent :refer [atom]]
[secretary.core :as secretary :include-macros true]
[accountant.core :as accountant]
[website.tobbar :refer [topbar]]
[website.home :refer [home-page]]
[website.install :refer [install-page]]
[website.charting :refer [charting-page]]))
;; -------------------------
;; Routes
(defonce page (atom #'home-page))
(defn current-page []
[:div
[topbar]
[:div.columns
[:div.column.is-offset-1.is-10
[:br]
[@page]]]])
(secretary/defroute "/" []
(reset! page #'home-page))
(secretary/defroute "/charting" []
(reset! page #'charting-page))
(secretary/defroute "/install" []
(reset! page #'install-page))
;; -------------------------
;; Initialize app
(defn mount-root []
(reagent/render [current-page] (.getElementById js/document "app")))
(defn init! []
(accountant/configure-navigation!
{:nav-handler
(fn [path]
(secretary/dispatch! path))
:path-exists?
(fn [path]
(secretary/locate-route path))})
(accountant/dispatch-current!)
(mount-root))