aboutsummaryrefslogtreecommitdiffstats
path: root/packages/instant/src/containers/selected_erc20_asset_amount_input.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/instant/src/containers/selected_erc20_asset_amount_input.ts')
-rw-r--r--packages/instant/src/containers/selected_erc20_asset_amount_input.ts122
1 files changed, 0 insertions, 122 deletions
diff --git a/packages/instant/src/containers/selected_erc20_asset_amount_input.ts b/packages/instant/src/containers/selected_erc20_asset_amount_input.ts
deleted file mode 100644
index 4b9993332..000000000
--- a/packages/instant/src/containers/selected_erc20_asset_amount_input.ts
+++ /dev/null
@@ -1,122 +0,0 @@
-import { AssetBuyer } from '@0x/asset-buyer';
-import { AssetProxyId } from '@0x/types';
-import { BigNumber } from '@0x/utils';
-import * as _ from 'lodash';
-import * as React from 'react';
-import { connect } from 'react-redux';
-import { Dispatch } from 'redux';
-
-import { ERC20AssetAmountInput, ERC20AssetAmountInputProps } from '../components/erc20_asset_amount_input';
-import { Action, actions } from '../redux/actions';
-import { State } from '../redux/reducer';
-import { ColorOption } from '../style/theme';
-import { AffiliateInfo, ERC20Asset, Omit, OrderProcessState, QuoteFetchOrigin } from '../types';
-import { buyQuoteUpdater } from '../util/buy_quote_updater';
-
-export interface SelectedERC20AssetAmountInputProps {
- fontColor?: ColorOption;
- startingFontSizePx: number;
- onSelectAssetClick?: (asset?: ERC20Asset) => void;
-}
-
-interface ConnectedState {
- assetBuyer: AssetBuyer;
- value?: BigNumber;
- asset?: ERC20Asset;
- isInputDisabled: boolean;
- numberOfAssetsAvailable?: number;
- affiliateInfo?: AffiliateInfo;
- canSelectOtherAsset: boolean;
-}
-
-interface ConnectedDispatch {
- updateBuyQuote: (
- assetBuyer: AssetBuyer,
- value?: BigNumber,
- asset?: ERC20Asset,
- affiliateInfo?: AffiliateInfo,
- ) => void;
-}
-
-type ConnectedProps = Omit<ERC20AssetAmountInputProps, keyof SelectedERC20AssetAmountInputProps>;
-
-type FinalProps = ConnectedProps & SelectedERC20AssetAmountInputProps;
-
-const mapStateToProps = (state: State, _ownProps: SelectedERC20AssetAmountInputProps): ConnectedState => {
- const processState = state.buyOrderState.processState;
- const isInputEnabled = processState === OrderProcessState.None || processState === OrderProcessState.Failure;
- const isInputDisabled = !isInputEnabled;
- const selectedAsset =
- !_.isUndefined(state.selectedAsset) && state.selectedAsset.metaData.assetProxyId === AssetProxyId.ERC20
- ? (state.selectedAsset as ERC20Asset)
- : undefined;
- const numberOfAssetsAvailable = _.isUndefined(state.availableAssets) ? undefined : state.availableAssets.length;
- const canSelectOtherAsset =
- numberOfAssetsAvailable && numberOfAssetsAvailable > 1
- ? isInputEnabled || processState === OrderProcessState.Success
- : false;
-
- const assetBuyer = state.providerState.assetBuyer;
- return {
- assetBuyer,
- value: state.selectedAssetUnitAmount,
- asset: selectedAsset,
- isInputDisabled,
- numberOfAssetsAvailable,
- affiliateInfo: state.affiliateInfo,
- canSelectOtherAsset,
- };
-};
-
-const debouncedUpdateBuyQuoteAsync = _.debounce(buyQuoteUpdater.updateBuyQuoteAsync.bind(buyQuoteUpdater), 200, {
- trailing: true,
-}) as typeof buyQuoteUpdater.updateBuyQuoteAsync;
-
-const mapDispatchToProps = (
- dispatch: Dispatch<Action>,
- _ownProps: SelectedERC20AssetAmountInputProps,
-): ConnectedDispatch => ({
- updateBuyQuote: (assetBuyer, value, asset, affiliateInfo) => {
- // Update the input
- dispatch(actions.updateSelectedAssetAmount(value));
- // invalidate the last buy quote.
- dispatch(actions.updateLatestBuyQuote(undefined));
- // reset our buy state
- dispatch(actions.setBuyOrderStateNone());
-
- if (!_.isUndefined(value) && value.isGreaterThan(0) && !_.isUndefined(asset)) {
- // even if it's debounced, give them the illusion it's loading
- dispatch(actions.setQuoteRequestStatePending());
- // tslint:disable-next-line:no-floating-promises
- debouncedUpdateBuyQuoteAsync(assetBuyer, dispatch, asset, value, QuoteFetchOrigin.Manual, {
- setPending: true,
- dispatchErrors: true,
- affiliateInfo,
- });
- }
- },
-});
-
-const mergeProps = (
- connectedState: ConnectedState,
- connectedDispatch: ConnectedDispatch,
- ownProps: SelectedERC20AssetAmountInputProps,
-): FinalProps => {
- return {
- ...ownProps,
- asset: connectedState.asset,
- value: connectedState.value,
- onChange: (value, asset) => {
- connectedDispatch.updateBuyQuote(connectedState.assetBuyer, value, asset, connectedState.affiliateInfo);
- },
- isInputDisabled: connectedState.isInputDisabled,
- numberOfAssetsAvailable: connectedState.numberOfAssetsAvailable,
- canSelectOtherAsset: connectedState.canSelectOtherAsset,
- };
-};
-
-export const SelectedERC20AssetAmountInput: React.ComponentClass<SelectedERC20AssetAmountInputProps> = connect(
- mapStateToProps,
- mapDispatchToProps,
- mergeProps,
-)(ERC20AssetAmountInput);