Reputation: 121
(gevents/listen js/document goog.events.EventType.CLICK ignore-anchor-click))
(gevents/listen js/document goog.events.EventType.CLICK ignore-anchor-click true))
question
Upvotes: 1
Views: 164
Reputation: 121
solution
(let [history (Yzma.frontend.easy/start! _ _ _)]
(goog.events/unlistenByKey (:click-listen-key history))
(goog.events/listen
js/document
goog.events.EventType.CLICK
(fn [event]
(when-let [element (Yzma.frontend.history/closest-by-tag
(Yzma.frontend.history/event-target event) "a")]
(let [uri (.parse goog.Uri (.-href element))]
(when (Yzma.frontend.history/ignore-anchor-click?
(.-router history) event element uri)
(.preventDefault event)
(let [path (str (.getPath uri)
(when (.hasQuery uri)
(str "?" (.getQuery uri)))
(when (.hasFragment uri)
(str "#" (.getFragment uri))))]
(.pushState js/window.history nil "" path)
(Yzma.frontend.history/-on-navigate history path)))))) true))
Upvotes: 0