Skip to content

Commit

Permalink
debounce workspace updates (considering slider filters)
Browse files Browse the repository at this point in the history
  • Loading branch information
andrew committed Jun 10, 2016
1 parent 982e776 commit a529b14
Show file tree
Hide file tree
Showing 2 changed files with 32 additions and 21 deletions.
24 changes: 7 additions & 17 deletions src/cljs/ulysses/handlers.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,6 @@
hyphenate-keys
parse-int-id
str->int
clj->json
json->clj
to-id-map
find-by-id
Expand All @@ -26,6 +25,7 @@
verify-user-poll-response
debounce-request-grant-ops
debounce-request-faculties-pool
debounce-request-workspace-save
validate-builder-filters]]))

;; ----------------------------------------------------------------------------
Expand Down Expand Up @@ -149,10 +149,7 @@

(register-handler
:request-faculties-pool
(fn [db _]
(debounce-request-faculties-pool db)
; (assoc db :builder-faculties-pool [])))
db))
debounce-request-faculties-pool)

(register-handler
:receive-faculties-pool
Expand All @@ -165,9 +162,7 @@

(register-handler
:request-grant-ops
(fn [db [_ page]]
(debounce-request-grant-ops db page)
db))
debounce-request-grant-ops)

(register-handler
:request-grant-ops-start
Expand Down Expand Up @@ -273,15 +268,7 @@

(register-handler
:workspace-save
(fn [db _]
(if-let [current (:builder-workspace db)]
(request db
[:workspace (:id current)]
:method :put
:params {:faculties (clj->json (or (:faculties current) []))
:filters (clj->json (:builder-filters db))}
:handler #(dispatch [:workspace-receive %]))
db)))
debounce-request-workspace-save)

(register-handler
:workspace-new-blank
Expand Down Expand Up @@ -428,18 +415,21 @@
:builder-filter-faculty-title-set
(fn [db [_ title-set]]
(dispatch [:request-faculties-pool])
(dispatch [:workspace-save])
(assoc-in db [:builder-filters :faculty-title-set] title-set)))

(register-handler
:builder-filter-faculty-years-uconn
(fn [db [_ years-uconn]]
(dispatch [:request-faculties-pool])
(dispatch [:workspace-save])
(assoc-in db [:builder-filters :faculty-years-uconn]
(or (str->int years-uconn) 0))))

(register-handler
:builder-filter-faculty-metric
(fn [db [_ metric value]]
(dispatch [:workspace-save])
(assoc-in db [:builder-filters :metrics metric]
value)))

Expand Down
29 changes: 25 additions & 4 deletions src/cljs/ulysses/utils.cljs
Original file line number Diff line number Diff line change
Expand Up @@ -463,8 +463,9 @@
:handler #(dispatch [:receive-grant-ops %]))))))

(defn debounce-request-grant-ops
[db page]
(put! request-grant-ops-channel [db page]))
[db [_ page]]
(put! request-grant-ops-channel [db page])
db)

; faculty requests

Expand All @@ -481,8 +482,28 @@
:handler #(dispatch [:receive-faculties-pool %])))))))

(defn debounce-request-faculties-pool
[db]
(put! request-faculties-pool-channel [db]))
[db _]
(put! request-faculties-pool-channel [db])
db)

; workspace updates

(def request-workspace-save-channel
(debounce-standard
(fn [db]
(if-let [current (:builder-workspace db)]
(request db
[:workspace (:id current)]
:method :put
:params {:faculties (clj->json (or (:faculties current) []))
:filters (clj->json (:builder-filters db))}
:handler #(dispatch [:workspace-receive %]))
db))))

(defn debounce-request-workspace-save
[db _]
(put! request-workspace-save-channel [db])
db)

;; ----------------------------------------------------------------------------
;; direct dom mutations
Expand Down

0 comments on commit a529b14

Please sign in to comment.