12345678910111213141516171819202122232425262728293031323334353637383940414243444546 |
- (ns microtables-frontend.events
- (:require
- [re-frame.core :as re-frame]
- [microtables-frontend.db :as db]
- [microtables-frontend.utils :as utils]))
- (re-frame/reg-event-db
- ::initialize-db
- (fn [_ _]
- (println "initializing db")
- (-> db/default-db
- (update-in [:table-data] #(utils/walk-modify-data % (fn [c r datum] (if (= (first (:value datum)) "=") (assoc datum :dirty true) datum))))
- (update-in [:table-data] utils/create-all-references)
- (update-in [:table-data] utils/create-all-back-references)
- (update-in [:table-data] utils/evaluate-all))))
- (re-frame/reg-event-db
- ::movement-enter-cell
- (fn [db [_ c r]]
- (println "::movement-enter-cell" c r)
- (assoc-in db [:position :cursor] {:col c :row r})))
- (re-frame/reg-event-db
- ::movement-leave-cell
- (fn [db [_ c r]]
- (println "::movement-leave-cell" c r)
- (-> db
- (assoc-in [:position :cursor] nil)
- (assoc-in [:position :selection] nil)
- (update-in [:table-data] #(utils/reset-references % c r))
- (update-in [:table-data] #(utils/evaluate-from-cell % c r)))))
- (re-frame/reg-event-db
- ::edit-cell-value
- (fn [db [_ c r value]]
- (println "::edit-cell-value" c r value)
- (update-in db [:table-data] #(utils/change-datum-value % c r value))))
|