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