From eb0d7df50b23af325edaecd7a7cccb269d7c8f88 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 14:27:12 +0800 Subject: [PATCH 1/6] Fix balance page copy to refer to the Wrap ETH tab instead of a "convert" button --- packages/website/ts/components/token_balances.tsx | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/packages/website/ts/components/token_balances.tsx b/packages/website/ts/components/token_balances.tsx index 112b3fe603..01e69d4b21 100644 --- a/packages/website/ts/components/token_balances.tsx +++ b/packages/website/ts/components/token_balances.tsx @@ -169,7 +169,7 @@ export class TokenBalances extends React.Component From 996e9e9102dc3f7ebcd6328c59593410c397c779 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:02:36 +0800 Subject: [PATCH 2/6] Add missing onError callbacks --- packages/website/ts/blockchain.ts | 6 +++++- packages/website/ts/web3_wrapper.ts | 6 +++++- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index 1320fbeb97..e82243c834 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -375,7 +375,11 @@ export class Blockchain { clearInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; } - }, 5000); + }, 5000, (err: Error) => { + utils.consoleLog(`Polling tokenBalance failed: ${err}`); + clearInterval(this._zrxPollIntervalId); + delete this._zrxPollIntervalId; + }); } public async signOrderHashAsync(orderHash: string): Promise { utils.assert(!_.isUndefined(this._zeroEx), 'ZeroEx must be instantiated.'); diff --git a/packages/website/ts/web3_wrapper.ts b/packages/website/ts/web3_wrapper.ts index 6f260dc486..f5e3985c5d 100644 --- a/packages/website/ts/web3_wrapper.ts +++ b/packages/website/ts/web3_wrapper.ts @@ -1,6 +1,7 @@ import { BigNumber, intervalUtils, promisify } from '@0xproject/utils'; import * as _ from 'lodash'; import { Dispatcher } from 'ts/redux/dispatcher'; +import { utils } from 'ts/utils/utils'; import * as Web3 from 'web3'; export class Web3Wrapper { @@ -135,7 +136,10 @@ export class Web3Wrapper { await this._updateUserEtherBalanceAsync(this._prevUserAddress); } } - }, 5000); + }, 5000, (err: Error) => { + utils.consoleLog(`Watching network and balances failed: ${err}`); + this._stopEmittingNetworkConnectionAndUserBalanceStateAsync(); + }); } private async _updateUserEtherBalanceAsync(userAddress: string) { const balance = await this.getBalanceInEthAsync(userAddress); From 024f093585ac4d97d674e254658f4a44275b8b9e Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:02:53 +0800 Subject: [PATCH 3/6] Fix Portal topbar so that it displays the mobile menu --- packages/website/ts/components/top_bar.tsx | 14 ++++++-------- 1 file changed, 6 insertions(+), 8 deletions(-) diff --git a/packages/website/ts/components/top_bar.tsx b/packages/website/ts/components/top_bar.tsx index 601471222a..c07366a0ca 100644 --- a/packages/website/ts/components/top_bar.tsx +++ b/packages/website/ts/components/top_bar.tsx @@ -167,15 +167,13 @@ export class TopBar extends React.Component { )} - {this.props.blockchainIsLoaded && - !_.isEmpty(this.props.userAddress) &&
{this._renderUser()}
} - {!this._isViewingPortal() && ( -
-
- -
+ {this.props.blockchainIsLoaded && _.isEmpty(this.props.userAddress) && +
{this._renderUser()}
} +
+
+
- )} +
{this._renderDrawer()} From 9e569b37912cf11fabad7fbc47bf9343c67a354e Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:20:15 +0800 Subject: [PATCH 4/6] Remove dead-code --- packages/website/ts/components/footer.tsx | 5 ----- 1 file changed, 5 deletions(-) diff --git a/packages/website/ts/components/footer.tsx b/packages/website/ts/components/footer.tsx index 3346f25454..22baf076b8 100644 --- a/packages/website/ts/components/footer.tsx +++ b/packages/website/ts/components/footer.tsx @@ -13,7 +13,6 @@ interface FooterMenuItem { title: string; path?: string; isExternal?: boolean; - fileName?: string; } enum Sections { @@ -56,25 +55,21 @@ const menuItemsBySection: MenuItemsBySection = { title: 'Rocket.chat', isExternal: true, path: constants.URL_ZEROEX_CHAT, - fileName: 'rocketchat.png', }, { title: 'Blog', isExternal: true, path: constants.URL_BLOG, - fileName: 'medium.png', }, { title: 'Twitter', isExternal: true, path: constants.URL_TWITTER, - fileName: 'twitter.png', }, { title: 'Reddit', isExternal: true, path: constants.URL_REDDIT, - fileName: 'reddit.png', }, ], Organization: [ From 807d9e3eef883541c4f43838e6ca702b120974e1 Mon Sep 17 00:00:00 2001 From: Fabio Berger Date: Thu, 18 Jan 2018 15:20:34 +0800 Subject: [PATCH 5/6] Add discourse forum to Community section of website footer --- .../website/public/images/social/discourse.png | Bin 0 -> 1454 bytes packages/website/ts/components/footer.tsx | 6 ++++++ packages/website/ts/utils/constants.ts | 1 + 3 files changed, 7 insertions(+) create mode 100644 packages/website/public/images/social/discourse.png diff --git a/packages/website/public/images/social/discourse.png b/packages/website/public/images/social/discourse.png new file mode 100644 index 0000000000000000000000000000000000000000..4bca3de0da27ad4f257c2e7da6f8e0a84a4ddb58 GIT binary patch literal 1454 zcmV;f1yTBmP)8FkDl$w+2`ehIEXPu3n$&7+(#lL7r{~%2b=vQ7zjI9Oq6KT#=l-2_*4}%acZP;C z&CJZ)6M9bt$410Bd=4(gq(?(i0eO%+*t7^Pm$=DP^Es+O8%QK(a5_5cWC&^jm=MlgLMe zp5%*;59pB+t%pFbOw2f;3wfYOS%Yt3|?6VW4r9p%Vi+z zJ3-wMwV5yl{|X<5=fjq<2Gp;t>+d}%_L*R!h{aY+0hbHlXm5RkF(?QL4p(6-+z+B$z#`|-w}32 z3bYBJzQfVHRDQu%S_{Xpr(qj$8omXd2bZ)9&<}JZFo14Hw>y#zIFz)Zp$|#?IqQue z|7MIQ8wUz`BLNn>ZQPAJOz<;}K?LApV)w#UEA8pKAUJ;0+XZ9}WNy#Bz74O1zp6e-w6|dCTEMyv^1c*eVvSili((OICa-Z1YRn0nknz zHLx-<^ftgB1YQTE?=8v(#==HY;c|?nu$TQPya#||$SR!$27trrMYz2=CBSY#x0Md{ zJ}`jR;+yRn^{oeRq;xc306k7%MG-uXeh{{=UMXL--Me)1@h3{J0?C%U`m zE`AS>!v|m=(hzGmgb};>R5*|V=|911Y(+$|K06hTYJpBx zfQ$#diBgWArw#a;52$4NNeR%FaMUDmd-!7!OT8EDhQeu8zZ7lFTk$IDKknN z-lq54j<5k*h91|g`3ZyXEpysnlWseU{J=Qdo1U0l(ADTpWyv%7gG%|+LAyqdp7=u9 zqX0>{05zArU0Dt6Dx7kgrU81jbe;=XnIHN#fOdxwQn1hAT5sH;lKr%O1Bf5#D%C)$ zi8|SsMTph#t#C{Y)LF@%e+xUE`^ML7t2zs#m{kBg2zyp9206KGxnpx6RSTmSuljnp z^Og=oKDWS^6u7;XdRAc+<=DNumW=ODcmi(!+N-6X$xbhGZJLy8-fefVDU5<#{2W}n zHgPxGL(~5e4ggvm^I&=*{8%l89U2aYLDc-~XhK=o^Vqe89^A4+-l&f$#IYu3b7M*C z|FhVx+OhV5jx;}q@kYnOc@d Date: Thu, 18 Jan 2018 19:29:54 +0800 Subject: [PATCH 6/6] Use intervalUtils.clearAsyncExcludingInterval instead of calling clearInterval directly for grepability --- packages/website/ts/blockchain.ts | 6 +++--- packages/website/ts/web3_wrapper.ts | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/packages/website/ts/blockchain.ts b/packages/website/ts/blockchain.ts index e82243c834..66f982427e 100644 --- a/packages/website/ts/blockchain.ts +++ b/packages/website/ts/blockchain.ts @@ -372,12 +372,12 @@ export class Blockchain { const [balance] = await this.getTokenBalanceAndAllowanceAsync(this._userAddress, token.address); if (!balance.eq(currBalance)) { this._dispatcher.replaceTokenBalanceByAddress(token.address, balance); - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; } }, 5000, (err: Error) => { utils.consoleLog(`Polling tokenBalance failed: ${err}`); - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); delete this._zrxPollIntervalId; }); } @@ -475,7 +475,7 @@ export class Blockchain { this._web3Wrapper.updatePrevUserAddress(newUserAddress); } public destroy() { - clearInterval(this._zrxPollIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._zrxPollIntervalId); this._web3Wrapper.destroy(); this._stopWatchingExchangeLogFillEvents(); } diff --git a/packages/website/ts/web3_wrapper.ts b/packages/website/ts/web3_wrapper.ts index f5e3985c5d..407c62aaa3 100644 --- a/packages/website/ts/web3_wrapper.ts +++ b/packages/website/ts/web3_wrapper.ts @@ -149,6 +149,6 @@ export class Web3Wrapper { } } private _stopEmittingNetworkConnectionAndUserBalanceStateAsync() { - clearInterval(this._watchNetworkAndBalanceIntervalId); + intervalUtils.clearAsyncExcludingInterval(this._watchNetworkAndBalanceIntervalId); } }