|
5 | 5 | ["react-dom" :as rdom]
|
6 | 6 | [demo.utils :as u]))
|
7 | 7 |
|
8 |
| -(def start-time (atom nil)) |
9 |
| -(def last-measure (atom nil)) |
10 |
| - |
11 |
| -(defn start-measure [name] |
12 |
| - (reset! start-time (.now js/performance)) |
13 |
| - (reset! last-measure name)) |
14 |
| - |
15 |
| -(defn stop-measure [] |
16 |
| - (if-let [last @last-measure] |
17 |
| - (.setTimeout js/window |
18 |
| - (fn [] |
19 |
| - (reset! last-measure nil) |
20 |
| - (let [stop (.now js/performance)] |
21 |
| - (.log js/console (str last " took " (- stop @start-time))))) |
22 |
| - 0))) |
23 |
| - |
24 |
| - |
25 |
| -(defnc row [{:keys [data selected? on-click on-delete]}] |
| 8 | +(defnc row [{:keys [data selected? on-select on-delete]}] |
26 | 9 | (d/tr {:class (if selected? "danger")}
|
27 | 10 | (d/td {:class "col-md-1"}
|
28 | 11 | (:id data))
|
29 | 12 | (d/td {:class "col-md-4"}
|
30 |
| - (d/a {:on-click (fn [e] (on-click (:id data)))} |
| 13 | + (d/a {:on-click (fn [e] (on-select (:id data)))} |
31 | 14 | (:label data)))
|
32 | 15 | (d/td {:class "col-md-1"}
|
33 | 16 | (d/a {:on-click (fn [e] (on-delete (:id data)))}
|
|
41 | 24 | (js/console.log "re-render")
|
42 | 25 | (let [[data set-data] (use-state [])
|
43 | 26 | [selected set-selected] (use-state nil)
|
44 |
| - print-duration |
45 |
| - (fn print-duration [] |
46 |
| - (stop-measure)) |
47 | 27 | run
|
48 | 28 | (fn run [_]
|
49 |
| - (start-measure "run") |
50 | 29 | (set-data (vec (u/build-data id-atom 1000)))
|
51 | 30 | (set-selected nil))
|
52 | 31 | run-lots
|
53 | 32 | (fn run-lots [_]
|
54 |
| - (start-measure "runLots") |
55 | 33 | (set-data (vec (u/build-data id-atom 10000)))
|
56 | 34 | (set-selected nil))
|
57 | 35 | add
|
58 | 36 | (fn add [_]
|
59 |
| - (start-measure "add") |
60 | 37 | (set-data u/add id-atom))
|
61 | 38 | update-some
|
62 | 39 | (fn update-some []
|
63 |
| - (start-measure "update") |
64 | 40 | (set-data u/update-some))
|
65 | 41 | clear
|
66 | 42 | (fn clear []
|
67 |
| - (start-measure "clear") |
68 | 43 | (set-selected nil)
|
69 | 44 | (set-data []))
|
70 | 45 | swap-rows
|
71 | 46 | (fn swap-rows []
|
72 |
| - (start-measure "swapRows") |
73 | 47 | (set-data u/swap-rows))
|
74 | 48 | select
|
75 | 49 | (fn select [id]
|
76 |
| - (start-measure "select") |
77 | 50 | (set-selected id))
|
78 | 51 | delete
|
79 | 52 | (fn delete [id]
|
80 |
| - (start-measure "delete") |
81 | 53 | (set-data u/delete-row id))]
|
82 |
| - (use-effect :always |
83 |
| - (print-duration)) |
84 | 54 | (d/div
|
85 | 55 | {:class "container"}
|
86 | 56 | (d/div
|
87 | 57 | {:class "jumbotron"}
|
88 | 58 | (d/div
|
89 | 59 | {:class "row"}
|
90 | 60 | (d/div {:class "col-md-6"}
|
91 |
| - (d/h1 (str "Helix (total rows " (count data) ")"))) |
| 61 | + (d/h1 (str "Helix"))) |
92 | 62 | (d/div {:class "col-md-6"}
|
93 | 63 | (d/div {:class "row"}
|
94 | 64 | (d/div {:class "col-sm-6 smallpad"}
|
|
0 commit comments