-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathstore.js
100 lines (87 loc) · 1.74 KB
/
store.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
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
import { createStore } from 'redux'
// initial state
const initialState = {
loading: false,
account: "",
chainId: null,
chainHex: null,
errorMsg: "",
};
// actions
const connectRequest = () => {
return {
type: "CONNECTION_REQUEST",
};
};
const connectSuccess = (payload) => {
return {
type: "CONNECTION_SUCCESS",
payload: payload,
};
};
const connectFailed = (payload) => {
return {
type: "CONNECTION_FAILED",
payload: payload,
};
};
const updateAccount = (payload) => {
return {
type: "UPDATE_ACCOUNT",
payload: payload,
};
};
const updateChainId = (payload) => {
return {
type: "UPDATE_CHAINID",
payload: payload,
};
};
const updateChainHex = (payload) => {
return {
type: "UPDATE_CHAINHEX",
payload: payload,
};
};
// reducer
const reducer = (state = initialState, action) => {
switch (action.type) {
case "CONNECTION_REQUEST":
return {
...initialState,
loading: true,
};
case "CONNECTION_SUCCESS":
return {
...state,
loading: false,
account: action.payload,
};
case "CONNECTION_FAILED":
return {
...initialState,
loading: false,
errorMsg: action.payload,
};
case "UPDATE_ACCOUNT":
return {
...state,
account: action.payload,
};
case "UPDATE_CHAINID":
return {
...state,
chainId: action.payload,
};
case "UPDATE_CHAINHEX":
return {
...state,
chainHex: action.payload,
};
default:
return state;
}
};
// store
export const store = createStore(reducer, initialState)
export { connectRequest, connectSuccess, connectFailed, updateAccount, updateChainId, updateChainHex };