mirror of
https://github.com/status-im/re-frame.git
synced 2025-02-23 07:18:22 +00:00
Middleware now working. Bump to version 0.1.6
This commit is contained in:
parent
947de41d02
commit
474b2e4bac
@ -1,4 +1,4 @@
|
||||
(defproject re-frame "0.1.5"
|
||||
(defproject re-frame "0.1.6"
|
||||
:description "A reagent framework"
|
||||
:url "https://github.com/Day8/re-frame.git"
|
||||
|
||||
|
@ -2,9 +2,7 @@
|
||||
(:refer-clojure :exclude [flush])
|
||||
(:require-macros [cljs.core.async.macros :refer [go-loop go]])
|
||||
(:require [reagent.core :refer [flush]]
|
||||
;[reagent.ratom :refer [IReactiveAtom]]
|
||||
[re-frame.db :refer [app-db]]
|
||||
; [re-frame.history :refer [store-now!]]
|
||||
[re-frame.utils :refer [first-in-vector warn]]
|
||||
[cljs.core.async :refer [chan put! <! timeout]]))
|
||||
|
||||
@ -15,11 +13,24 @@
|
||||
|
||||
(defn register
|
||||
"register a handler for an event"
|
||||
[event-id handler-fn]
|
||||
(when (contains? @id->fn event-id)
|
||||
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
|
||||
(swap! id->fn assoc event-id handler-fn))
|
||||
([event-id handler-fn]
|
||||
(when (contains? @id->fn event-id)
|
||||
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
|
||||
(swap! id->fn assoc event-id handler-fn))
|
||||
|
||||
([event-id middleware handler-fn]
|
||||
(register event-id (middleware handler-fn))))
|
||||
|
||||
|
||||
(defn register
|
||||
"register a handler for an event"
|
||||
([event-id handler-fn]
|
||||
(when (contains? @id->fn event-id)
|
||||
(warn "re-frame: overwriting an event-handler for: " event-id)) ;; allow it, but warn.
|
||||
(swap! id->fn assoc event-id handler-fn))
|
||||
|
||||
([event-id middleware handler-fn]
|
||||
(register event-id (middleware handler-fn))))
|
||||
|
||||
;; -- The Event Conveyor Belt --------------------------------------------------------------------
|
||||
;;
|
||||
|
@ -1,6 +1,7 @@
|
||||
(ns re-frame.middleware
|
||||
(:require [reagent.ratom :refer [IReactiveAtom]]
|
||||
[re-frame.history :refer [store-now!]]))
|
||||
(:require
|
||||
[reagent.ratom :refer [IReactiveAtom]]
|
||||
[re-frame.undo :refer [store-now!]]))
|
||||
|
||||
;; -- Middleware Factories -------------------------------------------------------------------------
|
||||
;;
|
||||
@ -11,7 +12,7 @@
|
||||
;;
|
||||
;; Use "comp" to compose middelware, like this:
|
||||
;;
|
||||
;; (def midware (comp undoable make-pure (validate some-fn))) ;; midware is a function
|
||||
;; (def midware (comp undoable pure (validate some-fn))) ;; midware is a function
|
||||
;;
|
||||
;; then imagine that we have a pure handler:
|
||||
;;
|
||||
@ -23,7 +24,7 @@
|
||||
;;
|
||||
;; (def h (midware my-handler)) ;; h is "my-handler" wrapped in middleware
|
||||
;;
|
||||
;; now call h:
|
||||
;; I could call h like this:
|
||||
;; (h app-db [:some-key 23]) <---- h is a handler, just pass in 'db' and 'v'
|
||||
;;
|
||||
;; Which means, you could just register 'h'
|
||||
@ -47,7 +48,7 @@
|
||||
(next-handler app-db event-vec)))
|
||||
|
||||
|
||||
(defn make-pure
|
||||
(defn pure
|
||||
"Middleware which allows you to write a pure handler.
|
||||
1. on the way through it extracts the value in the atom
|
||||
2. resets the atom with the returned value after calling the handler"
|
||||
|
@ -1,4 +1,4 @@
|
||||
(ns re-frame.history
|
||||
(ns re-frame.undo
|
||||
(:require-macros [reagent.ratom :refer [reaction]])
|
||||
(:require
|
||||
[reagent.core :as reagent]
|
Loading…
x
Reference in New Issue
Block a user