import { Styles } from '@0xproject/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; import { Blockchain } from 'ts/blockchain'; import { defaultMenuItemEntries, Menu } from 'ts/components/portal/menu'; import { Identicon } from 'ts/components/ui/identicon'; import { Text } from 'ts/components/ui/text'; import { colors } from 'ts/style/colors'; import { ProviderType, WebsitePaths } from 'ts/types'; import { utils } from 'ts/utils/utils'; const IDENTICON_DIAMETER = 45; const BORDER_RADIUS = '50%'; const styles: Styles = { root: { backgroundColor: colors.drawerMenuBackground, width: '100%', height: '100%', }, identicon: { borderWidth: 3, borderStyle: 'solid', borderColor: colors.white, borderRadius: BORDER_RADIUS, MozBorderRadius: BORDER_RADIUS, WebkitBorderRadius: BORDER_RADIUS, }, }; export interface DrawerMenuProps { selectedPath?: string; userAddress?: string; injectedProviderName: string; providerType: ProviderType; blockchain?: Blockchain; blockchainIsLoaded: boolean; } export const DrawerMenu = (props: DrawerMenuProps) => { const relayerItemEntry = { to: `${WebsitePaths.Portal}`, labelText: 'Relayer ecosystem', iconName: 'zmdi-portable-wifi', }; const menuItemEntries = _.concat(relayerItemEntry, defaultMenuItemEntries); const accountState = utils.getAccountState( props.blockchainIsLoaded && !_.isUndefined(props.blockchain), props.providerType, props.injectedProviderName, props.userAddress, ); const displayMessage = utils.getReadableAccountState(accountState, props.userAddress); return (