subs.cljs 890 B

1234567891011121314151617181920212223242526272829303132
  1. (ns microtables-frontend.subs
  2. (:require
  3. [re-frame.core :as re-frame]))
  4. ;TODO: insert other display mode data? ("value": formula (cursor), "display" (default): evaluated, "highlighted": in a selection (just a class?))
  5. (re-frame/reg-sub
  6. ::table-data
  7. (fn [db]
  8. (println "returning table data")
  9. (let [data (:table-data db)
  10. cursor (get-in db [:position :cursor])]
  11. (if cursor
  12. (map #(if (and
  13. (= (:row cursor) (:row %))
  14. (= (:col cursor) (:col %)))
  15. (assoc % :view :value)
  16. %) data)
  17. data))))
  18. (re-frame/reg-sub
  19. ::alt-table-data
  20. (fn [db]
  21. (println "returning alternative table data")
  22. (let [data (:alt-table-data db)
  23. cursor (get-in db [:position :cursor])]
  24. (if cursor
  25. (assoc-in data [(:col cursor) (:row cursor) :view] :value)
  26. data))))