diff options
author | fragosti <francesco.agosti93@gmail.com> | 2018-10-04 05:28:07 +0800 |
---|---|---|
committer | fragosti <francesco.agosti93@gmail.com> | 2018-10-04 05:28:07 +0800 |
commit | 15f20cc18e45d2971be7274bc3c0be36b02091c8 (patch) | |
tree | 470ed51e0d5e50fbb89045803c8b3c0d79413658 /packages/instant | |
parent | 700b7068a157a0f9d3d6ce3f61150c2961d81617 (diff) | |
download | dexon-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.json | 2 | ||||
-rw-r--r-- | packages/instant/src/components/zero_ex_instant.tsx | 12 | ||||
-rw-r--r-- | packages/instant/src/redux/reducer.ts | 23 | ||||
-rw-r--r-- | packages/instant/src/redux/store.ts | 8 | ||||
-rw-r--r-- | packages/instant/src/types.ts | 8 |
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; +} |