From 3660ba28d73d70d08bf14c33ef680e5ef3ec7f3b Mon Sep 17 00:00:00 2001
From: Fabio Berger <me@fabioberger.com>
Date: Tue, 21 Nov 2017 14:03:08 -0600
Subject: Add website to mono repo, update packages to align with existing
 sub-packages, use new subscribeAsync 0x.js method

---
 packages/website/ts/containers/portal.tsx | 94 +++++++++++++++++++++++++++++++
 1 file changed, 94 insertions(+)
 create mode 100644 packages/website/ts/containers/portal.tsx

(limited to 'packages/website/ts/containers/portal.tsx')

diff --git a/packages/website/ts/containers/portal.tsx b/packages/website/ts/containers/portal.tsx
new file mode 100644
index 000000000..805058aa3
--- /dev/null
+++ b/packages/website/ts/containers/portal.tsx
@@ -0,0 +1,94 @@
+import * as _ from 'lodash';
+import * as React from 'react';
+import {connect} from 'react-redux';
+import {Store as ReduxStore, Dispatch} from 'redux';
+import {State} from 'ts/redux/reducer';
+import {constants} from 'ts/utils/constants';
+import {Dispatcher} from 'ts/redux/dispatcher';
+import {
+    Side,
+    HashData,
+    TokenByAddress,
+    BlockchainErrs,
+    Fill,
+    Order,
+    ScreenWidths,
+    TokenStateByAddress,
+} from 'ts/types';
+import {
+    Portal as PortalComponent,
+    PortalAllProps as PortalComponentAllProps,
+    PortalPassedProps as PortalComponentPassedProps,
+} from 'ts/components/portal';
+import BigNumber from 'bignumber.js';
+
+interface MapStateToProps {
+    blockchainErr: BlockchainErrs;
+    blockchainIsLoaded: boolean;
+    hashData: HashData;
+    networkId: number;
+    nodeVersion: string;
+    orderFillAmount: number;
+    tokenByAddress: TokenByAddress;
+    tokenStateByAddress: TokenStateByAddress;
+    userEtherBalance: number;
+    screenWidth: ScreenWidths;
+    shouldBlockchainErrDialogBeOpen: boolean;
+    userAddress: string;
+    userSuppliedOrderCache: Order;
+}
+
+interface ConnectedState {}
+
+interface ConnectedDispatch {
+    dispatcher: Dispatcher;
+}
+
+const mapStateToProps = (state: State, ownProps: PortalComponentAllProps): ConnectedState => {
+    const receiveAssetToken = state.sideToAssetToken[Side.receive];
+    const depositAssetToken = state.sideToAssetToken[Side.deposit];
+    const receiveAddress = !_.isUndefined(receiveAssetToken.address) ?
+                          receiveAssetToken.address : constants.NULL_ADDRESS;
+    const depositAddress = !_.isUndefined(depositAssetToken.address) ?
+                          depositAssetToken.address : constants.NULL_ADDRESS;
+    const receiveAmount = !_.isUndefined(receiveAssetToken.amount) ?
+                          receiveAssetToken.amount : new BigNumber(0);
+    const depositAmount = !_.isUndefined(depositAssetToken.amount) ?
+                          depositAssetToken.amount : new BigNumber(0);
+    const hashData = {
+        depositAmount,
+        depositTokenContractAddr: depositAddress,
+        feeRecipientAddress: constants.FEE_RECIPIENT_ADDRESS,
+        makerFee: constants.MAKER_FEE,
+        orderExpiryTimestamp: state.orderExpiryTimestamp,
+        orderMakerAddress: state.userAddress,
+        orderTakerAddress: state.orderTakerAddress !== '' ? state.orderTakerAddress : constants.NULL_ADDRESS,
+        receiveAmount,
+        receiveTokenContractAddr: receiveAddress,
+        takerFee: constants.TAKER_FEE,
+        orderSalt: state.orderSalt,
+    };
+    return {
+        blockchainErr: state.blockchainErr,
+        blockchainIsLoaded: state.blockchainIsLoaded,
+        networkId: state.networkId,
+        nodeVersion: state.nodeVersion,
+        orderFillAmount: state.orderFillAmount,
+        hashData,
+        screenWidth: state.screenWidth,
+        shouldBlockchainErrDialogBeOpen: state.shouldBlockchainErrDialogBeOpen,
+        tokenByAddress: state.tokenByAddress,
+        tokenStateByAddress: state.tokenStateByAddress,
+        userAddress: state.userAddress,
+        userEtherBalance: state.userEtherBalance,
+        userSuppliedOrderCache: state.userSuppliedOrderCache,
+        flashMessage: state.flashMessage,
+    };
+};
+
+const mapDispatchToProps = (dispatch: Dispatch<State>): ConnectedDispatch => ({
+    dispatcher: new Dispatcher(dispatch),
+});
+
+export const Portal: React.ComponentClass<PortalComponentPassedProps> =
+  connect(mapStateToProps, mapDispatchToProps)(PortalComponent);
-- 
cgit 

