forked from reduxjs/redux
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathactionCreators.js
71 lines (62 loc) · 1.18 KB
/
actionCreators.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
import {
ADD_TODO,
DISPATCH_IN_MIDDLE,
GET_STATE_IN_MIDDLE,
SUBSCRIBE_IN_MIDDLE,
UNSUBSCRIBE_IN_MIDDLE,
THROW_ERROR,
UNKNOWN_ACTION
} from './actionTypes'
export function addTodo(text) {
return { type: ADD_TODO, text }
}
export function addTodoAsync(text) {
return dispatch =>
new Promise(resolve =>
setImmediate(() => {
dispatch(addTodo(text))
resolve()
})
)
}
export function addTodoIfEmpty(text) {
return (dispatch, getState) => {
if (!getState().length) {
dispatch(addTodo(text))
}
}
}
export function dispatchInMiddle(boundDispatchFn) {
return {
type: DISPATCH_IN_MIDDLE,
boundDispatchFn
}
}
export function getStateInMiddle(boundGetStateFn) {
return {
type: GET_STATE_IN_MIDDLE,
boundGetStateFn
}
}
export function subscribeInMiddle(boundSubscribeFn) {
return {
type: SUBSCRIBE_IN_MIDDLE,
boundSubscribeFn
}
}
export function unsubscribeInMiddle(boundUnsubscribeFn) {
return {
type: UNSUBSCRIBE_IN_MIDDLE,
boundUnsubscribeFn
}
}
export function throwError() {
return {
type: THROW_ERROR
}
}
export function unknownAction() {
return {
type: UNKNOWN_ACTION
}
}