swinging-needle-meter/resources/public/js/compiled/out/swinging_needle_meter/events.cljs
2020-10-20 14:44:11 +01:00

63 lines
1.2 KiB
Clojure

(ns swinging-needle-meter.events
(:require [re-frame.core :as re-frame]
[swinging-needle-meter.state :as state]))
;; Reset.
(re-frame/reg-event-db
:initialize-db
(fn [_ _]
state/default-state))
;; The clock ticked. Implement a mechanical swing.
(re-frame/reg-event-db
:timer
(fn [db [x value]]
(let [old-value (:old-value db)
target (:value db)
new-value (+ old-value (/ (- target old-value) 10))]
(assoc db :old-value new-value))))
(re-frame/reg-event-db
:set-value
(fn [db [x value]]
(assoc
(assoc db :old-value (:value db))
:value
value)))
(re-frame/reg-event-db
:set-setpoint
(fn [db [_ value]]
(assoc db :setpoint value)))
(re-frame/reg-event-db
:set-gradations
(fn [db [_ value]]
(assoc db :gradations value)))
(re-frame/reg-event-db
:set-size
(fn [db [_ value]]
(assoc db :size value)))
(re-frame/reg-event-db
:set-min-value
(fn [db [_ value]]
(assoc db :min-val value)))
(re-frame/reg-event-db
:set-max-value
(fn [db [_ value]]
(assoc db :max-val value)))
(re-frame/reg-event-db
:set-warning-value
(fn [db [_ value]]
(assoc db :warn-val value)))
(re-frame/reg-event-db
:set-unit
(fn [db [_ value]]
(assoc db :unit value)))