events.cljs 536 B

123456789101112131415161718
  1. (ns microtables-frontend.events
  2. (:require
  3. [re-frame.core :as re-frame]
  4. [microtables-frontend.db :as db]))
  5. (re-frame/reg-event-db
  6. ::initialize-db
  7. (fn [_ _]
  8. db/default-db))
  9. (re-frame/reg-event-db
  10. ::edit-cell-value
  11. (fn [db [_ c r existing-datum value]]
  12. (if (nil? existing-datum)
  13. (assoc db :table-data (conj (:table-data db) {:row r :col c :value value :dirty true}))
  14. (assoc db :table-data (map #(if (and (= r (:row %)) (= c (:col %))) (assoc (assoc % :dirty true) :value value) %) (:table-data db))))))