mirror of
https://github.com/status-im/re-frame.git
synced 2025-02-23 15:28:09 +00:00
Incorporate changes from #46
This commit is contained in:
parent
76ee67de10
commit
f5ed759767
@ -7,9 +7,9 @@
|
||||
|
||||
(defn comp-middleware
|
||||
"Given a vector of middleware, filter out any nils, and use \"comp\" to compose the elements.
|
||||
v can have nested vectors, and will be flattended before \"comp\" is applied.
|
||||
v can have nested vectors, and will be flattened before \"comp\" is applied.
|
||||
For convienience, if v is a function (assumed to be middleware already), just return it.
|
||||
Filtering out nils allows us to create Middlewhere conditionally like this:
|
||||
Filtering out nils allows us to create Middleware conditionally like this:
|
||||
(comp-middleware [pure (when debug? debug)]) ;; that 'when' might leave a nil
|
||||
"
|
||||
[v]
|
||||
@ -17,7 +17,7 @@
|
||||
(fn? v) v ;; assumed to be existing middleware
|
||||
(vector? v) (let [v (remove nil? (flatten v))]
|
||||
(cond
|
||||
(empty? v) identity ;; noop middleware
|
||||
(empty? v) identity ;; no-op middleware
|
||||
(= 1 (count v)) (first v) ;; only one middleware, no composing needed
|
||||
:else (apply comp v)))
|
||||
:else (warn "re-frame: comp-middleware expects a vector, got: " v)))
|
||||
|
@ -76,7 +76,7 @@
|
||||
|
||||
(defn trim-v
|
||||
"Middleware which removes the first element of v, allowing you to write
|
||||
more asthetically pleasing handlers. No leading underscore on the event-v!
|
||||
more aesthetically pleasing handlers. No leading underscore on the event-v!
|
||||
Your handlers will look like this:
|
||||
(defn my-handler
|
||||
[db [x y z]] ;; <-- instead of [_ x y z]
|
||||
|
@ -16,12 +16,12 @@
|
||||
|
||||
;; -- router loop ---------------------------------------------------------------------------------
|
||||
;;
|
||||
;; In a perpretual loop, read events from "event-chan", and call the right handler.
|
||||
;; In a perpetual loop, read events from "event-chan", and call the right handler.
|
||||
;;
|
||||
;; Because handlers occupy the CPU, before each event is handled, hand
|
||||
;; back control to the browser, via a (<! (timeout 0)) call.
|
||||
;;
|
||||
;; In some cases, we need to pause for an entire annimationFrame, to ensure that
|
||||
;; In some cases, we need to pause for an entire animationFrame, to ensure that
|
||||
;; the DOM is fully flushed, before then calling a handler known to hog the CPU
|
||||
;; for an extended period. In such a case, the event should be laballed with metadata
|
||||
;; Example usage (notice the ":flush-dom" metadata):
|
||||
|
Loading…
x
Reference in New Issue
Block a user