(ns auto-ap.history
  (:require [bidi.bidi :as bidi]
            [pushy.core :as pushy]
            [auto-ap.routes :as routes]
            [cemerick.url :refer [url]]
            [re-frame.core :as re-frame]))

(defn- parse-url [url]
  (println url)
  (bidi/match-route routes/routes url))

(defn- dispatch-route [matched-route]
  (println "Matched route" matched-route)
  (re-frame/dispatch [:auto-ap.events/set-active-page (:handler matched-route) (->> (:query (url (.-location js/window)))
                                                                                    (map (fn [[k v]] [(keyword k) v]))
                                                                                    (into {}))]))


(def history (pushy/pushy dispatch-route parse-url))
