diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-06-01 06:11:04 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-06-02 01:37:44 +0800 |
commit | 31f1a9e5aa2b99dd7d802e67c5cff5854880e884 (patch) | |
tree | f459853f7e59733fe42cfa8f4e00227faba43d59 /packages/website/ts/components | |
parent | 6387aae4711ea4cb9db67c57567494fedb56bb3e (diff) | |
download | dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.gz dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.bz2 dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.lz dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.xz dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.zst dexon-0x-contracts-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.zip |
Refactor order parser and add shared order support to new portal
Diffstat (limited to 'packages/website/ts/components')
-rw-r--r-- | packages/website/ts/components/legacy_portal/legacy_portal.tsx | 3 | ||||
-rw-r--r-- | packages/website/ts/components/portal/portal.tsx | 10 |
2 files changed, 10 insertions, 3 deletions
diff --git a/packages/website/ts/components/legacy_portal/legacy_portal.tsx b/packages/website/ts/components/legacy_portal/legacy_portal.tsx index 6a3a54303..446b7507e 100644 --- a/packages/website/ts/components/legacy_portal/legacy_portal.tsx +++ b/packages/website/ts/components/legacy_portal/legacy_portal.tsx @@ -38,6 +38,7 @@ import { } from 'ts/types'; import { configs } from 'ts/utils/configs'; import { constants } from 'ts/utils/constants'; +import { orderParser } from 'ts/utils/order_parser'; import { Translate } from 'ts/utils/translate'; import { utils } from 'ts/utils/utils'; @@ -86,7 +87,7 @@ export class LegacyPortal extends React.Component<LegacyPortalProps, LegacyPorta } constructor(props: LegacyPortalProps) { super(props); - this._sharedOrderIfExists = this._getSharedOrderIfExists(); + this._sharedOrderIfExists = orderParser.parse(window.location.search); this._throttledScreenWidthUpdate = _.throttle(this._updateScreenWidth.bind(this), THROTTLE_TIMEOUT); const isViewingBalances = _.includes(props.location.pathname, `${WebsitePaths.Portal}/balances`); diff --git a/packages/website/ts/components/portal/portal.tsx b/packages/website/ts/components/portal/portal.tsx index cb55b0912..589ad00ad 100644 --- a/packages/website/ts/components/portal/portal.tsx +++ b/packages/website/ts/components/portal/portal.tsx @@ -43,6 +43,7 @@ import { } from 'ts/types'; import { configs } from 'ts/utils/configs'; import { constants } from 'ts/utils/constants'; +import { orderParser } from 'ts/utils/order_parser'; import { Translate } from 'ts/utils/translate'; import { utils } from 'ts/utils/utils'; @@ -117,9 +118,11 @@ const styles: Styles = { export class Portal extends React.Component<PortalProps, PortalState> { private _blockchain: Blockchain; + private _sharedOrderIfExists: Order; private _throttledScreenWidthUpdate: () => void; constructor(props: PortalProps) { super(props); + this._sharedOrderIfExists = orderParser.parse(window.location.search); this._throttledScreenWidthUpdate = _.throttle(this._updateScreenWidth.bind(this), THROTTLE_TIMEOUT); const didAcceptPortalDisclaimer = localStorage.getItemIfExists(constants.LOCAL_STORAGE_KEY_ACCEPT_DISCLAIMER); const hasAcceptedDisclaimer = @@ -402,12 +405,15 @@ export class Portal extends React.Component<PortalProps, PortalState> { ); } private _renderFillOrder(): React.ReactNode { + const initialFillOrder = !_.isUndefined(this.props.userSuppliedOrderCache) + ? this.props.userSuppliedOrderCache + : this._sharedOrderIfExists; return ( <FillOrder blockchain={this._blockchain} blockchainErr={this.props.blockchainErr} - initialOrder={undefined} // Add user supplied order and shared order stuff here - isOrderInUrl={false} + initialOrder={initialFillOrder} + isOrderInUrl={!_.isUndefined(this._sharedOrderIfExists)} orderFillAmount={this.props.orderFillAmount} networkId={this.props.networkId} userAddress={this.props.userAddress} |