Skip to content

Commit

Permalink
Calculate and display error rate (scary!)
Browse files Browse the repository at this point in the history
  • Loading branch information
bobbicodes committed Aug 22, 2021
1 parent a228a81 commit 9bf7f3f
Show file tree
Hide file tree
Showing 4 changed files with 21 additions and 3 deletions.
1 change: 1 addition & 0 deletions src/typing/db.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -28,6 +28,7 @@
:ave-wpm 0
:high-speed 0
:prob-keys []
:errors 0
:words words/common-words})

(def ls-key "presses-reframe") ;; localstore key
Expand Down
9 changes: 8 additions & 1 deletion src/typing/events.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -129,6 +129,11 @@
(fn [db [_ value]]
(assoc db :high-speed value)))

(re-frame/reg-event-db
::inc-errors
(fn [db [_ value]]
(update db :errors inc)))

(re-frame/reg-event-db
::set-current-key
(fn [db [_ value]]
Expand Down Expand Up @@ -162,7 +167,9 @@
(:prob-keys db))))))])
0) ; reset counter and update text
(inc (:cursor-pos db))))
(:cursor-pos db))))))
(do
(re-frame/dispatch [::inc-errors])
(:cursor-pos db)))))))

(re-frame/reg-event-db
::advance-cursor
Expand Down
5 changes: 5 additions & 0 deletions src/typing/subs.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -52,6 +52,11 @@
(fn [db]
(:words db)))

(re-frame/reg-sub
::errors
(fn [db]
(:errors db)))

(re-frame/reg-sub
::deltas
(fn [db]
Expand Down
9 changes: 7 additions & 2 deletions src/typing/views.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -178,7 +178,8 @@
prob-keys (re-frame/subscribe [::subs/prob-keys])
moving-ave (re-frame/subscribe [::subs/moving-ave])
high-speed (re-frame/subscribe [::subs/high-speed])
all-time-ave (re-frame/subscribe [::subs/all-time-ave])]
all-time-ave (re-frame/subscribe [::subs/all-time-ave])
errors (re-frame/subscribe [::subs/errors])]
[:div [:center
[gauge]
[:h3 (str @moving-ave " wpm")]
Expand All @@ -192,5 +193,9 @@
[:div
[:span "Problem keys (ave. ms): "]
[:span (interpose ", " (for [key (take 4 (filter #(contains? lowercase-letters (first %)) @prob-keys))]
(str (first key) " - " (last key))))]]]]))
(str (first key) " - " (last key))))]
[:p (str "Errors: " @errors " ("
(.round js/Math (* 100 (/ @errors (+ (count @presses) @errors))))
"%)")]]]]))

(/ 5 41)

0 comments on commit 9bf7f3f

Please sign in to comment.