aboutsummaryrefslogtreecommitdiffstats
path: root/packages/website/ts/components
diff options
context:
space:
mode:
authorBrandon Millman <brandon.millman@gmail.com>2018-06-01 06:11:04 +0800
committerBrandon Millman <brandon.millman@gmail.com>2018-06-02 01:37:44 +0800
commit31f1a9e5aa2b99dd7d802e67c5cff5854880e884 (patch)
treef459853f7e59733fe42cfa8f4e00227faba43d59 /packages/website/ts/components
parent6387aae4711ea4cb9db67c57567494fedb56bb3e (diff)
downloaddexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar
dexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.gz
dexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.bz2
dexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.lz
dexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.xz
dexon-sol-tools-31f1a9e5aa2b99dd7d802e67c5cff5854880e884.tar.zst
dexon-sol-tools-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.tsx3
-rw-r--r--packages/website/ts/components/portal/portal.tsx10
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}