aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant
diff options
context:
space:
mode:
authorfragosti <francesco.agosti93@gmail.com>2018-10-04 05:28:07 +0800
committerfragosti <francesco.agosti93@gmail.com>2018-10-04 05:28:07 +0800
commit15f20cc18e45d2971be7274bc3c0be36b02091c8 (patch)
tree470ed51e0d5e50fbb89045803c8b3c0d79413658 /packages/instant
parent700b7068a157a0f9d3d6ce3f61150c2961d81617 (diff)
downloaddexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar.gz
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar.bz2
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar.lz
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar.xz
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.tar.zst
dexon-sol-tools-15f20cc18e45d2971be7274bc3c0be36b02091c8.zip
Add redux to 0x instant
Diffstat (limited to 'packages/instant')
-rw-r--r--packages/instant/package.json2
-rw-r--r--packages/instant/src/components/zero_ex_instant.tsx12
-rw-r--r--packages/instant/src/redux/reducer.ts23
-rw-r--r--packages/instant/src/redux/store.ts8
-rw-r--r--packages/instant/src/types.ts8
5 files changed, 49 insertions, 4 deletions
diff --git a/packages/instant/package.json b/packages/instant/package.json
index 9f97b1caa..2a1c05f2a 100644
--- a/packages/instant/package.json
+++ b/packages/instant/package.json
@@ -64,6 +64,8 @@
"@types/node": "*",
"@types/react": "16.4.7",
"@types/react-dom": "^16.0.8",
+ "@types/react-redux": "^6.0.9",
+ "@types/redux": "^3.6.0",
"awesome-typescript-loader": "^5.2.1",
"copyfiles": "^1.2.0",
"enzyme": "^3.6.0",
diff --git a/packages/instant/src/components/zero_ex_instant.tsx b/packages/instant/src/components/zero_ex_instant.tsx
index 43398cf3b..9ba390be9 100644
--- a/packages/instant/src/components/zero_ex_instant.tsx
+++ b/packages/instant/src/components/zero_ex_instant.tsx
@@ -1,11 +1,15 @@
import * as React from 'react';
+import { Provider } from 'react-redux';
-import { ThemeProvider } from '../style/theme';
+import { store } from '../redux/store';
+import { theme, ThemeProvider } from '../style/theme';
export interface ZeroExInstantProps {}
export const ZeroExInstant: React.StatelessComponent<ZeroExInstantProps> = () => (
- <ThemeProvider>
- <div> ZeroExInstant </div>
- </ThemeProvider>
+ <Provider store={store}>
+ <ThemeProvider theme={theme}>
+ <div> ZeroExInstant </div>
+ </ThemeProvider>
+ </Provider>
);
diff --git a/packages/instant/src/redux/reducer.ts b/packages/instant/src/redux/reducer.ts
new file mode 100644
index 000000000..7efe8aeb0
--- /dev/null
+++ b/packages/instant/src/redux/reducer.ts
@@ -0,0 +1,23 @@
+import * as _ from 'lodash';
+
+import { Action, ActionTypes } from '../types';
+
+export interface State {
+ ethUsdPrice?: string;
+}
+
+export const INITIAL_STATE: State = {
+ ethUsdPrice: undefined,
+};
+
+export function reducer(state: State = INITIAL_STATE, action: Action): State {
+ switch (action.type) {
+ case ActionTypes.UPDATE_ETH_USD_PRICE:
+ return {
+ ...state,
+ ethUsdPrice: action.data,
+ };
+ default:
+ return state;
+ }
+}
diff --git a/packages/instant/src/redux/store.ts b/packages/instant/src/redux/store.ts
new file mode 100644
index 000000000..4d80c0383
--- /dev/null
+++ b/packages/instant/src/redux/store.ts
@@ -0,0 +1,8 @@
+import * as _ from 'lodash';
+import { applyMiddleware, createStore, Store as ReduxStore } from 'redux';
+
+import { reducer, State } from './reducer';
+
+const ONE_SECOND = 1000;
+
+export const store: ReduxStore<State> = createStore(reducer);
diff --git a/packages/instant/src/types.ts b/packages/instant/src/types.ts
new file mode 100644
index 000000000..3ba5a9b94
--- /dev/null
+++ b/packages/instant/src/types.ts
@@ -0,0 +1,8 @@
+export enum ActionTypes {
+ UPDATE_ETH_USD_PRICE,
+}
+
+export interface Action {
+ type: ActionTypes;
+ data?: any;
+}