Remove ConnectedZeroExInstantContainer, introduce ConnectedBuyOrderProgressOrPaymentMethod

This commit is contained in:
Steve Klebanoff
2018-11-13 15:07:21 -08:00
parent f03afe6f1b
commit 9e0c232a73
5 changed files with 43 additions and 41 deletions

View File

@@ -1,7 +1,7 @@
import * as React from 'react'; import * as React from 'react';
import { INJECTED_DIV_CLASS } from '../constants'; import { INJECTED_DIV_CLASS } from '../constants';
import { ConnectedZeroExInstantContainer } from '../containers/connected_zero_ex_instant_container'; import { ZeroExInstantContainer } from '../components/zero_ex_instant_container';
import { ZeroExInstantProvider, ZeroExInstantProviderProps } from './zero_ex_instant_provider'; import { ZeroExInstantProvider, ZeroExInstantProviderProps } from './zero_ex_instant_provider';
@@ -11,7 +11,7 @@ export const ZeroExInstant: React.StatelessComponent<ZeroExInstantProps> = props
return ( return (
<div className={INJECTED_DIV_CLASS}> <div className={INJECTED_DIV_CLASS}>
<ZeroExInstantProvider {...props}> <ZeroExInstantProvider {...props}>
<ConnectedZeroExInstantContainer /> <ZeroExInstantContainer />
</ZeroExInstantProvider> </ZeroExInstantProvider>
</div> </div>
); );

View File

@@ -1,11 +1,10 @@
import * as React from 'react'; import * as React from 'react';
import { AvailableERC20TokenSelector } from '../containers/available_erc20_token_selector'; import { AvailableERC20TokenSelector } from '../containers/available_erc20_token_selector';
import { ConnectedAccountPaymentMethod } from '../containers/connected_account_payment_method'; import { ConnectedBuyOrderProgressOrPaymentMethod } from '../containers/connected_buy_order_progress_or_payment_method';
import { CurrentStandardSlidingPanel } from '../containers/current_standard_sliding_panel'; import { CurrentStandardSlidingPanel } from '../containers/current_standard_sliding_panel';
import { LatestBuyQuoteOrderDetails } from '../containers/latest_buy_quote_order_details'; import { LatestBuyQuoteOrderDetails } from '../containers/latest_buy_quote_order_details';
import { LatestError } from '../containers/latest_error'; import { LatestError } from '../containers/latest_error';
import { SelectedAssetBuyOrderProgress } from '../containers/selected_asset_buy_order_progress';
import { SelectedAssetBuyOrderStateButtons } from '../containers/selected_asset_buy_order_state_buttons'; import { SelectedAssetBuyOrderStateButtons } from '../containers/selected_asset_buy_order_state_buttons';
import { SelectedAssetInstantHeading } from '../containers/selected_asset_instant_heading'; import { SelectedAssetInstantHeading } from '../containers/selected_asset_instant_heading';
import { ColorOption } from '../style/theme'; import { ColorOption } from '../style/theme';
@@ -24,7 +23,7 @@ export interface ZeroExInstantContainerState {
tokenSelectionPanelAnimationState: SlideAnimationState; tokenSelectionPanelAnimationState: SlideAnimationState;
} }
export class ZeroExInstantContainer extends React.Component<ZeroExInstantContainerProps, ZeroExInstantContainerState> { export class ZeroExInstantContainer extends React.Component<{}, ZeroExInstantContainerState> {
public state = { public state = {
tokenSelectionPanelAnimationState: 'none' as SlideAnimationState, tokenSelectionPanelAnimationState: 'none' as SlideAnimationState,
}; };
@@ -51,7 +50,7 @@ export class ZeroExInstantContainer extends React.Component<ZeroExInstantContain
> >
<Flex direction="column" justify="flex-start" height="100%"> <Flex direction="column" justify="flex-start" height="100%">
<SelectedAssetInstantHeading onSelectAssetClick={this._handleSymbolClick} /> <SelectedAssetInstantHeading onSelectAssetClick={this._handleSymbolClick} />
{this._renderPaymentMethodOrBuyOrderProgress()} <ConnectedBuyOrderProgressOrPaymentMethod />
<LatestBuyQuoteOrderDetails /> <LatestBuyQuoteOrderDetails />
<Container padding="20px" width="100%"> <Container padding="20px" width="100%">
<SelectedAssetBuyOrderStateButtons /> <SelectedAssetBuyOrderStateButtons />
@@ -79,16 +78,4 @@ export class ZeroExInstantContainer extends React.Component<ZeroExInstantContain
tokenSelectionPanelAnimationState: 'slidOut', tokenSelectionPanelAnimationState: 'slidOut',
}); });
}; };
private readonly _renderPaymentMethodOrBuyOrderProgress = (): React.ReactNode => {
const { orderProcessState } = this.props;
if (
orderProcessState === OrderProcessState.Processing ||
orderProcessState === OrderProcessState.Success ||
orderProcessState === OrderProcessState.Failure
) {
return <SelectedAssetBuyOrderProgress />;
} else {
return <ConnectedAccountPaymentMethod />;
}
};
} }

View File

@@ -1,6 +1,6 @@
import * as React from 'react'; import * as React from 'react';
import { ConnectedZeroExInstantContainer } from '../containers/connected_zero_ex_instant_container'; import { ZeroExInstantContainer } from '../components/zero_ex_instant_container';
import { ColorOption } from '../style/theme'; import { ColorOption } from '../style/theme';
import { Container } from './ui/container'; import { Container } from './ui/container';
@@ -31,7 +31,7 @@ export const ZeroExInstantOverlay: React.StatelessComponent<ZeroExInstantOverlay
/> />
</Container> </Container>
<Container width={{ default: 'auto', sm: '100%' }} height={{ default: 'auto', sm: '100%' }}> <Container width={{ default: 'auto', sm: '100%' }} height={{ default: 'auto', sm: '100%' }}>
<ConnectedZeroExInstantContainer /> <ZeroExInstantContainer />
</Container> </Container>
</Flex> </Flex>
</Overlay> </Overlay>

View File

@@ -0,0 +1,36 @@
import * as React from 'react';
import { connect } from 'react-redux';
import { State } from '../redux/reducer';
import { OrderProcessState } from '../types';
import { ConnectedAccountPaymentMethod } from './connected_account_payment_method';
import { SelectedAssetBuyOrderProgress } from './selected_asset_buy_order_progress';
interface BuyOrderProgressOrPaymentMethodProps {
orderProcessState: OrderProcessState;
}
export const BuyOrderProgressOrPaymentMethod = (props: BuyOrderProgressOrPaymentMethodProps) => {
const { orderProcessState } = props;
if (
orderProcessState === OrderProcessState.Processing ||
orderProcessState === OrderProcessState.Success ||
orderProcessState === OrderProcessState.Failure
) {
return <SelectedAssetBuyOrderProgress />;
}
if (orderProcessState === OrderProcessState.None) {
return <ConnectedAccountPaymentMethod />;
}
return null;
};
interface ConnectedState extends BuyOrderProgressOrPaymentMethodProps {}
export interface ConnectedBuyOrderProgressOrPaymentMethodProps {}
const mapStateToProps = (state: State, _ownProps: ConnectedBuyOrderProgressOrPaymentMethodProps): ConnectedState => ({
orderProcessState: state.buyOrderState.processState,
});
export const ConnectedBuyOrderProgressOrPaymentMethod: React.ComponentClass<
ConnectedBuyOrderProgressOrPaymentMethodProps
> = connect(mapStateToProps)(BuyOrderProgressOrPaymentMethod);

View File

@@ -1,21 +0,0 @@
import * as React from 'react';
import { connect } from 'react-redux';
import { State } from '../redux/reducer';
import { OrderProcessState } from '../types';
import { ZeroExInstantContainer } from '../components/zero_ex_instant_container';
export interface ConnectedZeroExInstantContainerProps {}
interface ConnectedState {
orderProcessState: OrderProcessState;
}
const mapStateToProps = (state: State, _ownProps: ConnectedZeroExInstantContainerProps): ConnectedState => ({
orderProcessState: state.buyOrderState.processState,
});
export const ConnectedZeroExInstantContainer: React.ComponentClass<ConnectedZeroExInstantContainerProps> = connect(
mapStateToProps,
)(ZeroExInstantContainer);