aboutsummaryrefslogtreecommitdiffstats
path: root/packages/react-shared/src/utils/utils.ts
diff options
context:
space:
mode:
authorFabio Berger <me@fabioberger.com>2018-03-19 03:14:02 +0800
committerFabio Berger <me@fabioberger.com>2018-03-19 03:14:02 +0800
commit82b0ff6008415fac4d509d4e2e91b17d11cb0079 (patch)
tree6be7db86e35691e4c663cfb324ff59b43ae3f7db /packages/react-shared/src/utils/utils.ts
parenta691de7d55d2f712a9601dd2440f155fcb0a9a14 (diff)
parentcc4e390c91da86778c6d1492d55591a783af3152 (diff)
downloaddexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar.gz
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar.bz2
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar.lz
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar.xz
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.tar.zst
dexon-0x-contracts-82b0ff6008415fac4d509d4e2e91b17d11cb0079.zip
Merge branch 'development'
* development: (269 commits) Make new packages default to public on publish Add new public packages to top-level README Update top-level package.json Fix incorrect new versions Fix path to assets Publish Updated CHANGELOGS Fix quotation marks Add a complex test for ast visitor Move opcodes to constants Fix issue with bundling subproviders for the browser by ignoring the `ganache-core` dependency Add changelog entry about pragma addition Add pragma above command-line script Add tests for sol-cov Updated CHANGELOGs Add SignedOrder, Order, and ECSignature types to the types package Keep console.log in monorepo-scripts Enable coverage for all other packages with tests Fix parallel coverage results reporting Fix linter issuesx ...
Diffstat (limited to 'packages/react-shared/src/utils/utils.ts')
-rw-r--r--packages/react-shared/src/utils/utils.ts45
1 files changed, 45 insertions, 0 deletions
diff --git a/packages/react-shared/src/utils/utils.ts b/packages/react-shared/src/utils/utils.ts
new file mode 100644
index 000000000..b3acb081e
--- /dev/null
+++ b/packages/react-shared/src/utils/utils.ts
@@ -0,0 +1,45 @@
+import isMobile = require('is-mobile');
+import * as _ from 'lodash';
+import { scroller } from 'react-scroll';
+
+import { EtherscanLinkSuffixes, Networks } from '../types';
+
+import { constants } from './constants';
+
+export const utils = {
+ setUrlHash(anchorId: string) {
+ window.location.hash = anchorId;
+ },
+ scrollToHash(hash: string, containerId: string): void {
+ let finalHash = hash;
+ if (_.isEmpty(hash)) {
+ finalHash = constants.SCROLL_TOP_ID; // scroll to the top
+ }
+
+ scroller.scrollTo(finalHash, {
+ duration: 0,
+ offset: 0,
+ containerId,
+ });
+ },
+ isUserOnMobile(): boolean {
+ const isUserOnMobile = isMobile();
+ return isUserOnMobile;
+ },
+ getIdFromName(name: string) {
+ const id = name.replace(/ /g, '-');
+ return id;
+ },
+ getEtherScanLinkIfExists(
+ addressOrTxHash: string,
+ networkId: number,
+ suffix: EtherscanLinkSuffixes,
+ ): string | undefined {
+ const networkName = constants.NETWORK_NAME_BY_ID[networkId];
+ if (_.isUndefined(networkName)) {
+ return undefined;
+ }
+ const etherScanPrefix = networkName === Networks.Mainnet ? '' : `${networkName.toLowerCase()}.`;
+ return `https://${etherScanPrefix}etherscan.io/${suffix}/${addressOrTxHash}`;
+ },
+};