diff options
author | Brandon Millman <brandon.millman@gmail.com> | 2018-03-15 05:36:04 +0800 |
---|---|---|
committer | Brandon Millman <brandon.millman@gmail.com> | 2018-03-15 05:36:04 +0800 |
commit | 380e51ca505a880e1ac24f46b3ba7e1a736f693e (patch) | |
tree | 95e0311485834d8181171da821f258dd46a2d258 /packages/react-shared/src/utils/utils.ts | |
parent | 6a8c2cb7172be9b0aadb34904d1d9b3348bed0cc (diff) | |
parent | aea7207b9f9865a279243889a5f9ca1638ddc739 (diff) | |
download | dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar.gz dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar.bz2 dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar.lz dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar.xz dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.tar.zst dexon-0x-contracts-380e51ca505a880e1ac24f46b3ba7e1a736f693e.zip |
Merge branch 'development' into feature/utils/console-log
* development: (25 commits)
Enable coverage for all other packages with tests
Fix parallel coverage results reporting
Fix linter issuesx
Remove outdated comment
Add script copying to build command
Add postpublish script to sol-cov
Move configuration into package.json configs section
Transform input data before encoding for callAsync and getABIEncodedTransactionData
Consolidate docs generation and uploading logic
Use async/await instead of promise syntax
Move changelog entry
remove unneeded include
remove unused dep
Fix lint issues
Re-add linter to monorepo-scripts but with tslint-config dep at earlier version to avoid cyclical dependency
small fixes
move scripts to monorepro-scripts
Fix gitignore
Move abi-gen scripts to src
Add missing dep
...
Diffstat (limited to 'packages/react-shared/src/utils/utils.ts')
-rw-r--r-- | packages/react-shared/src/utils/utils.ts | 45 |
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}`; + }, +}; |