Improve performance on rules rendering.

This commit is contained in:
Andrey Antukh 2016-02-24 20:38:09 +02:00
parent bedec4f68e
commit 05a0dc95dd

View file

@ -82,6 +82,20 @@
:name "vertical-tick-render" :name "vertical-tick-render"
:mixins [mx/static]})) :mixins [mx/static]}))
(defn vertical-ticks-render
[own]
(html
[:g
(for [value +ticks+]
(-> (vertical-tick value)
(rum/with-key value)))]))
(def ^:const vertical-ticks
(mx/component
{:render vertical-ticks-render
:name "vertical-ticks-render"
:mixins [mx/static]}))
(defn horizontal-rule-render (defn horizontal-rule-render
[own sidebar?] [own sidebar?]
(let [scroll (rum/react wb/scroll-a) (let [scroll (rum/react wb/scroll-a)
@ -92,9 +106,7 @@
{:width wb/viewport-width {:width wb/viewport-width
:height 20} :height 20}
[:g {:transform (str "translate(" translate-x ", 0)")} [:g {:transform (str "translate(" translate-x ", 0)")}
(for [value +ticks+] (vertical-ticks)]])))
(-> (vertical-tick value)
(rum/with-key value)))]])))
(def horizontal-rule (def horizontal-rule
(mx/component (mx/component
@ -157,6 +169,20 @@
:name "horizontal-tick-render" :name "horizontal-tick-render"
:mixins [mx/static]})) :mixins [mx/static]}))
(defn- horizontal-ticks-render
[own]
(html
[:g
(for [value +ticks+]
(-> (horizontal-tick value)
(rum/with-key value)))]))
(def ^:const horizontal-ticks
(mx/component
{:render horizontal-ticks-render
:name "horizontal-ticks-render"
:mixins [mx/static]}))
(defn vertical-rule-render (defn vertical-rule-render
[own sidebar?] [own sidebar?]
(let [scroll (rum/react wb/scroll-a) (let [scroll (rum/react wb/scroll-a)
@ -168,9 +194,7 @@
:height wb/viewport-height} :height wb/viewport-height}
[:g {:transform (str "translate(0, " translate-y ")")} [:g {:transform (str "translate(0, " translate-y ")")}
(for [value +ticks+] (horizontal-ticks)]
(-> (horizontal-tick value)
(rum/with-key value)))]
[:rect {:x 0 [:rect {:x 0
:y 0 :y 0
:height 20 :height 20