diff options
author | fragosti <francesco.agosti93@gmail.com> | 2018-10-19 07:04:30 +0800 |
---|---|---|
committer | fragosti <francesco.agosti93@gmail.com> | 2018-10-19 07:04:51 +0800 |
commit | ad6dc8e891059f00f2ddda1884bbc78c1e47ea24 (patch) | |
tree | 17e06dedb3dab0617586fb1ee585466266ad577d | |
parent | 44635f34f0df4da935ed4793566995873aac5055 (diff) | |
download | dexon-sol-tools-ad6dc8e891059f00f2ddda1884bbc78c1e47ea24.tar.gz dexon-sol-tools-ad6dc8e891059f00f2ddda1884bbc78c1e47ea24.tar.zst dexon-sol-tools-ad6dc8e891059f00f2ddda1884bbc78c1e47ea24.zip |
fix: refactor ZeroExInstant state creation logic and fix bug
-rw-r--r-- | packages/instant/src/components/zero_ex_instant.tsx | 9 | ||||
-rw-r--r-- | packages/instant/src/redux/reducer.ts | 1 | ||||
-rw-r--r-- | packages/instant/src/redux/store.ts | 3 |
3 files changed, 7 insertions, 6 deletions
diff --git a/packages/instant/src/components/zero_ex_instant.tsx b/packages/instant/src/components/zero_ex_instant.tsx index 5b75a7556..a67c0f412 100644 --- a/packages/instant/src/components/zero_ex_instant.tsx +++ b/packages/instant/src/components/zero_ex_instant.tsx @@ -29,8 +29,7 @@ export class ZeroExInstant extends React.Component<ZeroExInstantProps> { additionalAssetMetaDataMap: {}, }; public store: Store; - constructor(props: ZeroExInstantProps) { - super(props); + private static _createPartialStoreStateFromProps(props: ZeroExInstantProps): Partial<State> { // TODO: Provider needs to not be hard-coded to injected web3. const assetBuyer = AssetBuyer.getAssetBuyerForStandardRelayerAPIUrl(getProvider(), props.sraApiUrl); const completeAssetMetaDataMap = { @@ -42,7 +41,11 @@ export class ZeroExInstant extends React.Component<ZeroExInstantProps> { selectedAsset: assetUtils.createAssetFromAssetData(props.assetData, completeAssetMetaDataMap), assetMetaDataMap: completeAssetMetaDataMap, }; - this.store = store.create(storeStateFromProps); + return storeStateFromProps; + } + constructor(props: ZeroExInstantProps) { + super(props); + this.store = store.create(ZeroExInstant._createPartialStoreStateFromProps(this.props)); // tslint:disable-next-line:no-floating-promises asyncData.fetchAndDispatchToStore(this.store); } diff --git a/packages/instant/src/redux/reducer.ts b/packages/instant/src/redux/reducer.ts index 657bd0e40..83422be45 100644 --- a/packages/instant/src/redux/reducer.ts +++ b/packages/instant/src/redux/reducer.ts @@ -36,7 +36,6 @@ export const INITIAL_STATE: State = { quoteState: AsyncProcessState.NONE, }; -// TODO: Figure out why there is an INITIAL_STATE key in the store... export const reducer = (state: State = INITIAL_STATE, action: Action): State => { switch (action.type) { case ActionTypes.UPDATE_ETH_USD_PRICE: diff --git a/packages/instant/src/redux/store.ts b/packages/instant/src/redux/store.ts index 505234299..88d964bbc 100644 --- a/packages/instant/src/redux/store.ts +++ b/packages/instant/src/redux/store.ts @@ -9,10 +9,9 @@ export type Store = ReduxStore<State>; export const store = { create: (withState: Partial<State>): Store => { const allInitialState = { - INITIAL_STATE, + ...INITIAL_STATE, ...withState, }; return createStore(reducer, allInitialState, devToolsEnhancer({})); }, }; - |