Remove type prop and instead infer it from the value of to
This commit is contained in:
		@@ -2,6 +2,7 @@ import {
 | 
			
		||||
    colors,
 | 
			
		||||
    constants as sharedConstants,
 | 
			
		||||
    EtherscanLinkSuffixes,
 | 
			
		||||
    Link,
 | 
			
		||||
    MarkdownSection,
 | 
			
		||||
    NestedSidebarMenu,
 | 
			
		||||
    Networks,
 | 
			
		||||
@@ -319,9 +320,9 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
 | 
			
		||||
                <div className="pt2" key={`external-export-${exportName}`}>
 | 
			
		||||
                    <code className={`hljs ${constants.TYPE_TO_SYNTAX[this.props.docsInfo.type]}`}>
 | 
			
		||||
                        {`import { `}
 | 
			
		||||
                        <a href={link} target="_blank" style={{ color: colors.lightBlueA700, textDecoration: 'none' }}>
 | 
			
		||||
                        <Link to={link} shouldOpenInNewTab={true} fontColor={colors.lightBlueA700}>
 | 
			
		||||
                            {exportName}
 | 
			
		||||
                        </a>
 | 
			
		||||
                        </Link>
 | 
			
		||||
                        {` } from '${this.props.docsInfo.packageName}'`}
 | 
			
		||||
                    </code>
 | 
			
		||||
                </div>
 | 
			
		||||
@@ -350,14 +351,16 @@ export class Documentation extends React.Component<DocumentationProps, Documenta
 | 
			
		||||
                    EtherscanLinkSuffixes.Address,
 | 
			
		||||
                );
 | 
			
		||||
                return (
 | 
			
		||||
                    <a
 | 
			
		||||
                    <div style={{ marginTop: 8 }}>
 | 
			
		||||
                        <Link
 | 
			
		||||
                            key={`badge-${networkName}-${sectionName}`}
 | 
			
		||||
                        href={linkIfExists}
 | 
			
		||||
                        target="_blank"
 | 
			
		||||
                        style={{ color: colors.white, textDecoration: 'none', marginTop: 8 }}
 | 
			
		||||
                            to={linkIfExists}
 | 
			
		||||
                            shouldOpenInNewTab={true}
 | 
			
		||||
                            fontColor={colors.white}
 | 
			
		||||
                        >
 | 
			
		||||
                            <Badge title={networkName} backgroundColor={networkNameToColor[networkName]} />
 | 
			
		||||
                    </a>
 | 
			
		||||
                        </Link>
 | 
			
		||||
                    </div>
 | 
			
		||||
                );
 | 
			
		||||
            },
 | 
			
		||||
        );
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { colors, constants as sharedConstants, utils as sharedUtils } from '@0xproject/react-shared';
 | 
			
		||||
import { colors, constants as sharedConstants, Link, utils as sharedUtils } from '@0xproject/react-shared';
 | 
			
		||||
import { Type as TypeDef, TypeDefinitionByName, TypeDocTypes } from '@0xproject/types';
 | 
			
		||||
import { errorUtils } from '@0xproject/utils';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
@@ -205,14 +205,9 @@ export const Type: React.SFC<TypeProps> = (props: TypeProps): any => {
 | 
			
		||||
    const typeNameUrlIfExists = !_.isUndefined(props.type.externalLink) ? props.type.externalLink : undefined;
 | 
			
		||||
    if (!_.isUndefined(typeNameUrlIfExists)) {
 | 
			
		||||
        typeName = (
 | 
			
		||||
            <a
 | 
			
		||||
                href={typeNameUrlIfExists}
 | 
			
		||||
                target="_blank"
 | 
			
		||||
                className="text-decoration-none"
 | 
			
		||||
                style={{ color: colors.lightBlueA700 }}
 | 
			
		||||
            >
 | 
			
		||||
            <Link to={typeNameUrlIfExists} shouldOpenInNewTab={true} fontColor={colors.lightBlueA700}>
 | 
			
		||||
                {typeName}
 | 
			
		||||
            </a>
 | 
			
		||||
            </Link>
 | 
			
		||||
        );
 | 
			
		||||
    } else if (
 | 
			
		||||
        (isReference || isArray) &&
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { ALink, LinkType, utils as sharedUtils } from '@0xproject/react-shared';
 | 
			
		||||
import { ALink, utils as sharedUtils } from '@0xproject/react-shared';
 | 
			
		||||
import { DocAgnosticFormat, ObjectMap, TypeDefinitionByName } from '@0xproject/types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
 | 
			
		||||
@@ -62,7 +62,6 @@ export class DocsInfo {
 | 
			
		||||
                    return {
 | 
			
		||||
                        to: `${sectionName}-${typeName}`,
 | 
			
		||||
                        title: typeName,
 | 
			
		||||
                        type: LinkType.ReactScroll,
 | 
			
		||||
                    };
 | 
			
		||||
                });
 | 
			
		||||
                subsectionNameToLinks[sectionName] = typeLinks;
 | 
			
		||||
@@ -86,7 +85,6 @@ export class DocsInfo {
 | 
			
		||||
                    return {
 | 
			
		||||
                        to: `${sectionName}-${name}`,
 | 
			
		||||
                        title: name,
 | 
			
		||||
                        type: LinkType.ReactScroll,
 | 
			
		||||
                    };
 | 
			
		||||
                });
 | 
			
		||||
 | 
			
		||||
@@ -114,7 +112,6 @@ export class DocsInfo {
 | 
			
		||||
                links.push({
 | 
			
		||||
                    title: linkTitle,
 | 
			
		||||
                    to,
 | 
			
		||||
                    type: LinkType.ReactScroll,
 | 
			
		||||
                });
 | 
			
		||||
            });
 | 
			
		||||
        });
 | 
			
		||||
 
 | 
			
		||||
@@ -2,13 +2,13 @@ import * as _ from 'lodash';
 | 
			
		||||
import * as React from 'react';
 | 
			
		||||
import { Link as ReactRounterLink } from 'react-router-dom';
 | 
			
		||||
import { Link as ScrollLink } from 'react-scroll';
 | 
			
		||||
import * as validUrl from 'valid-url';
 | 
			
		||||
 | 
			
		||||
import { LinkType } from '../types';
 | 
			
		||||
import { constants } from '../utils/constants';
 | 
			
		||||
 | 
			
		||||
interface LinkProps {
 | 
			
		||||
    to: string;
 | 
			
		||||
    type?: LinkType;
 | 
			
		||||
    shouldOpenInNewTab?: boolean;
 | 
			
		||||
    className?: string;
 | 
			
		||||
    onMouseOver?: (event: React.MouseEvent<HTMLElement>) => void;
 | 
			
		||||
@@ -28,7 +28,6 @@ export interface LinkState {}
 | 
			
		||||
 */
 | 
			
		||||
export class Link extends React.Component<LinkProps, LinkState> {
 | 
			
		||||
    public static defaultProps: Partial<LinkProps> = {
 | 
			
		||||
        type: LinkType.ReactRoute,
 | 
			
		||||
        shouldOpenInNewTab: false,
 | 
			
		||||
        className: '',
 | 
			
		||||
        onMouseOver: _.noop.bind(_),
 | 
			
		||||
@@ -43,7 +42,18 @@ export class Link extends React.Component<LinkProps, LinkState> {
 | 
			
		||||
        this._outerReactScrollSpan = null;
 | 
			
		||||
    }
 | 
			
		||||
    public render(): React.ReactNode {
 | 
			
		||||
        if (this.props.type === LinkType.ReactScroll && this.props.shouldOpenInNewTab) {
 | 
			
		||||
        let type: LinkType;
 | 
			
		||||
        const isReactRoute = _.startsWith(this.props.to, '/');
 | 
			
		||||
        const isExternal = validUrl.isWebUri(this.props.to) || _.startsWith(this.props.to, 'mailto:');
 | 
			
		||||
        if (isReactRoute) {
 | 
			
		||||
            type = LinkType.ReactRoute;
 | 
			
		||||
        } else if (isExternal) {
 | 
			
		||||
            type = LinkType.External;
 | 
			
		||||
        } else {
 | 
			
		||||
            type = LinkType.ReactScroll;
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
        if (type === LinkType.ReactScroll && this.props.shouldOpenInNewTab) {
 | 
			
		||||
            throw new Error(`Cannot open LinkType.ReactScroll links in new tab. link.to: ${this.props.to}`);
 | 
			
		||||
        }
 | 
			
		||||
 | 
			
		||||
@@ -53,9 +63,7 @@ export class Link extends React.Component<LinkProps, LinkState> {
 | 
			
		||||
            color: this.props.fontColor,
 | 
			
		||||
        };
 | 
			
		||||
 | 
			
		||||
        console.log('styleWithDefault', styleWithDefault);
 | 
			
		||||
 | 
			
		||||
        switch (this.props.type) {
 | 
			
		||||
        switch (type) {
 | 
			
		||||
            case LinkType.External:
 | 
			
		||||
                return (
 | 
			
		||||
                    <a
 | 
			
		||||
@@ -108,7 +116,7 @@ export class Link extends React.Component<LinkProps, LinkState> {
 | 
			
		||||
                    </span>
 | 
			
		||||
                );
 | 
			
		||||
            default:
 | 
			
		||||
                throw new Error(`Unrecognized LinkType: ${this.props.type}`);
 | 
			
		||||
                throw new Error(`Unrecognized LinkType: ${type}`);
 | 
			
		||||
        }
 | 
			
		||||
    }
 | 
			
		||||
    // HACK(fabio): For some reason, the react-scroll link decided to stop the propagation of click events.
 | 
			
		||||
 
 | 
			
		||||
@@ -8,6 +8,7 @@ import { colors } from '../utils/colors';
 | 
			
		||||
import { utils } from '../utils/utils';
 | 
			
		||||
 | 
			
		||||
import { AnchorTitle } from './anchor_title';
 | 
			
		||||
import { Link } from './link';
 | 
			
		||||
import { MarkdownCodeBlock } from './markdown_code_block';
 | 
			
		||||
import { MarkdownLinkBlock } from './markdown_link_block';
 | 
			
		||||
 | 
			
		||||
@@ -63,13 +64,11 @@ export class MarkdownSection extends React.Component<MarkdownSectionProps, Markd
 | 
			
		||||
                        </div>
 | 
			
		||||
                        <div className="col col-4 sm-hide xs-hide right-align pr3" style={{ height: 28 }}>
 | 
			
		||||
                            {!_.isUndefined(githubLink) && (
 | 
			
		||||
                                <a
 | 
			
		||||
                                    href={githubLink}
 | 
			
		||||
                                    target="_blank"
 | 
			
		||||
                                    style={{ color: colors.linkBlue, textDecoration: 'none', lineHeight: 2.1 }}
 | 
			
		||||
                                >
 | 
			
		||||
                                <div style={{ lineHeight: 2.1 }}>
 | 
			
		||||
                                    <Link to={githubLink} shouldOpenInNewTab={true} fontColor={colors.linkBlue}>
 | 
			
		||||
                                        Edit on Github
 | 
			
		||||
                                </a>
 | 
			
		||||
                                    </Link>
 | 
			
		||||
                                </div>
 | 
			
		||||
                            )}
 | 
			
		||||
                        </div>
 | 
			
		||||
                    </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -94,7 +94,7 @@ export class NestedSidebarMenu extends React.Component<NestedSidebarMenuProps, N
 | 
			
		||||
                : link.title;
 | 
			
		||||
            return (
 | 
			
		||||
                <div key={`menuItem-${finalMenuItemName}`}>
 | 
			
		||||
                    <Link to={link.to} type={link.type} shouldOpenInNewTab={link.shouldOpenInNewTab}>
 | 
			
		||||
                    <Link to={link.to} shouldOpenInNewTab={link.shouldOpenInNewTab}>
 | 
			
		||||
                        <MenuItem
 | 
			
		||||
                            style={menuItemStyles}
 | 
			
		||||
                            innerDivStyle={menuItemInnerDivStyles}
 | 
			
		||||
@@ -131,7 +131,7 @@ export class NestedSidebarMenu extends React.Component<NestedSidebarMenuProps, N
 | 
			
		||||
                    const name = `${menuItemName}-${link.title}`;
 | 
			
		||||
                    return (
 | 
			
		||||
                        <li key={`menuSubsectionItem-${name}`}>
 | 
			
		||||
                            <Link to={link.to} type={link.type} shouldOpenInNewTab={link.shouldOpenInNewTab}>
 | 
			
		||||
                            <Link to={link.to} shouldOpenInNewTab={link.shouldOpenInNewTab}>
 | 
			
		||||
                                <MenuItem
 | 
			
		||||
                                    style={{ minHeight: 35 }}
 | 
			
		||||
                                    innerDivStyle={{
 | 
			
		||||
 
 | 
			
		||||
@@ -6,7 +6,7 @@ export { NestedSidebarMenu } from './components/nested_sidebar_menu';
 | 
			
		||||
export { SectionHeader } from './components/section_header';
 | 
			
		||||
export { Link } from './components/link';
 | 
			
		||||
 | 
			
		||||
export { HeaderSizes, Styles, EtherscanLinkSuffixes, Networks, LinkType, ALink } from './types';
 | 
			
		||||
export { HeaderSizes, Styles, EtherscanLinkSuffixes, Networks, ALink } from './types';
 | 
			
		||||
 | 
			
		||||
export { utils } from './utils/utils';
 | 
			
		||||
export { constants } from './utils/constants';
 | 
			
		||||
 
 | 
			
		||||
@@ -30,5 +30,4 @@ export interface ALink {
 | 
			
		||||
    title: string;
 | 
			
		||||
    to: string;
 | 
			
		||||
    shouldOpenInNewTab?: boolean;
 | 
			
		||||
    type?: LinkType;
 | 
			
		||||
}
 | 
			
		||||
 
 | 
			
		||||
@@ -62,6 +62,7 @@
 | 
			
		||||
        "styled-components": "^3.3.0",
 | 
			
		||||
        "thenby": "^1.2.3",
 | 
			
		||||
        "truffle-contract": "2.0.1",
 | 
			
		||||
        "valid-url": "^1.0.9",
 | 
			
		||||
        "web3-provider-engine": "14.0.6",
 | 
			
		||||
        "xml-js": "^1.6.4"
 | 
			
		||||
    },
 | 
			
		||||
@@ -84,6 +85,7 @@
 | 
			
		||||
        "@types/react-scroll": "1.5.3",
 | 
			
		||||
        "@types/react-tap-event-plugin": "0.0.30",
 | 
			
		||||
        "@types/redux": "^3.6.0",
 | 
			
		||||
        "@types/valid-url": "^1.0.2",
 | 
			
		||||
        "@types/web3-provider-engine": "^14.0.0",
 | 
			
		||||
        "awesome-typescript-loader": "^5.2.1",
 | 
			
		||||
        "copyfiles": "^2.0.0",
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { colors, Networks } from '@0xproject/react-shared';
 | 
			
		||||
import { colors, Link, Networks } from '@0xproject/react-shared';
 | 
			
		||||
import Dialog from 'material-ui/Dialog';
 | 
			
		||||
import FlatButton from 'material-ui/FlatButton';
 | 
			
		||||
import * as React from 'react';
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { ALink, colors, Link, LinkType } from '@0xproject/react-shared';
 | 
			
		||||
import { ALink, colors, Link } from '@0xproject/react-shared';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import * as React from 'react';
 | 
			
		||||
import { Container } from 'ts/components/ui/container';
 | 
			
		||||
@@ -46,19 +46,16 @@ const usefulLinksToLinkInfo: ALink[] = [
 | 
			
		||||
    {
 | 
			
		||||
        title: Key.Github,
 | 
			
		||||
        to: constants.URL_GITHUB_ORG,
 | 
			
		||||
        type: LinkType.External,
 | 
			
		||||
        shouldOpenInNewTab: true,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        title: Key.Whitepaper,
 | 
			
		||||
        to: WebsitePaths.Whitepaper,
 | 
			
		||||
        type: LinkType.External,
 | 
			
		||||
        shouldOpenInNewTab: true,
 | 
			
		||||
    },
 | 
			
		||||
    {
 | 
			
		||||
        title: Key.Sandbox,
 | 
			
		||||
        to: constants.URL_SANDBOX,
 | 
			
		||||
        type: LinkType.External,
 | 
			
		||||
        shouldOpenInNewTab: true,
 | 
			
		||||
    },
 | 
			
		||||
];
 | 
			
		||||
@@ -160,17 +157,16 @@ export class DevelopersDropDown extends React.Component<DevelopersDropDownProps,
 | 
			
		||||
            const isWikiLink = _.startsWith(link.to, WebsitePaths.Wiki) && _.includes(link.to, '#');
 | 
			
		||||
            const isOnWiki = this.props.location.pathname === WebsitePaths.Wiki;
 | 
			
		||||
            let to = link.to;
 | 
			
		||||
            let type = link.type;
 | 
			
		||||
            const type = link.type;
 | 
			
		||||
            if (isWikiLink && isOnWiki) {
 | 
			
		||||
                to = `${link.to.split('#')[1]}`;
 | 
			
		||||
                type = LinkType.ReactScroll;
 | 
			
		||||
            }
 | 
			
		||||
            i++;
 | 
			
		||||
            const isLast = i === numLinks;
 | 
			
		||||
            const linkText = this.props.translate.get(link.title as Key, Deco.Cap);
 | 
			
		||||
            return (
 | 
			
		||||
                <div className={`pr1 pt1 ${!isLast && 'pb1'}`} key={`dev-dropdown-link-${link.title}`}>
 | 
			
		||||
                    <Link to={to} type={type} shouldOpenInNewTab={!!link.shouldOpenInNewTab}>
 | 
			
		||||
                    <Link to={to} shouldOpenInNewTab={!!link.shouldOpenInNewTab}>
 | 
			
		||||
                        <Text fontFamily="Roboto, Roboto Mono" fontColor={colors.lightBlueA700}>
 | 
			
		||||
                            {linkText}
 | 
			
		||||
                        </Text>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { ALink, colors, Link, LinkType } from '@0xproject/react-shared';
 | 
			
		||||
import { ALink, colors, Link } from '@0xproject/react-shared';
 | 
			
		||||
import { ObjectMap } from '@0xproject/types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import DropDownMenu from 'material-ui/DropDownMenu';
 | 
			
		||||
@@ -54,7 +54,7 @@ export class Footer extends React.Component<FooterProps, FooterState> {
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.Whitepaper, Deco.Cap),
 | 
			
		||||
                    to: WebsitePaths.Whitepaper,
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.Wiki, Deco.Cap),
 | 
			
		||||
@@ -68,28 +68,28 @@ export class Footer extends React.Component<FooterProps, FooterState> {
 | 
			
		||||
            [Key.Community]: [
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.RocketChat, Deco.Cap),
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: constants.URL_ZEROEX_CHAT,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.Blog, Deco.Cap),
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: constants.URL_BLOG,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: 'Twitter',
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: constants.URL_TWITTER,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: 'Reddit',
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: constants.URL_REDDIT,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.Forum, Deco.Cap),
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: constants.URL_DISCOURSE_FORUM,
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
            [Key.Organization]: [
 | 
			
		||||
@@ -103,8 +103,8 @@ export class Footer extends React.Component<FooterProps, FooterState> {
 | 
			
		||||
                },
 | 
			
		||||
                {
 | 
			
		||||
                    title: this.props.translate.get(Key.Contact, Deco.Cap),
 | 
			
		||||
                    type: LinkType.External,
 | 
			
		||||
                    to: 'mailto:team@0xproject.com',
 | 
			
		||||
                    shouldOpenInNewTab: true,
 | 
			
		||||
                },
 | 
			
		||||
            ],
 | 
			
		||||
        };
 | 
			
		||||
@@ -182,7 +182,12 @@ export class Footer extends React.Component<FooterProps, FooterState> {
 | 
			
		||||
        const iconIfExists = titleToIcon[link.title];
 | 
			
		||||
        return (
 | 
			
		||||
            <div key={link.title} className="sm-center" style={{ fontSize: 13, paddingTop: 25 }}>
 | 
			
		||||
                <Link to={link.to} type={link.type} fontColor={colors.white} className="text-decoration-none">
 | 
			
		||||
                <Link
 | 
			
		||||
                    to={link.to}
 | 
			
		||||
                    shouldOpenInNewTab={link.shouldOpenInNewTab}
 | 
			
		||||
                    fontColor={colors.white}
 | 
			
		||||
                    className="text-decoration-none"
 | 
			
		||||
                >
 | 
			
		||||
                    <div>
 | 
			
		||||
                        {!_.isUndefined(iconIfExists) ? (
 | 
			
		||||
                            <div className="inline-block">
 | 
			
		||||
 
 | 
			
		||||
@@ -1,13 +1,5 @@
 | 
			
		||||
import { DocsInfo } from '@0xproject/react-docs';
 | 
			
		||||
import {
 | 
			
		||||
    ALink,
 | 
			
		||||
    colors,
 | 
			
		||||
    constants as sharedConstants,
 | 
			
		||||
    Link,
 | 
			
		||||
    LinkType,
 | 
			
		||||
    NestedSidebarMenu,
 | 
			
		||||
    Styles,
 | 
			
		||||
} from '@0xproject/react-shared';
 | 
			
		||||
import { ALink, colors, constants as sharedConstants, Link, NestedSidebarMenu, Styles } from '@0xproject/react-shared';
 | 
			
		||||
import { ObjectMap } from '@0xproject/types';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import Drawer from 'material-ui/Drawer';
 | 
			
		||||
@@ -177,7 +169,7 @@ export class TopBar extends React.Component<TopBarProps, TopBarState> {
 | 
			
		||||
                                    path={constants.URL_BLOG}
 | 
			
		||||
                                    style={styles.menuItem}
 | 
			
		||||
                                    isNightVersion={isNightVersion}
 | 
			
		||||
                                    linkType={LinkType.External}
 | 
			
		||||
                                    shouldOpenInNewTab={true}
 | 
			
		||||
                                />
 | 
			
		||||
                                <TopBarMenuItem
 | 
			
		||||
                                    title={this.props.translate.get(Key.About, Deco.Cap)}
 | 
			
		||||
@@ -285,7 +277,7 @@ export class TopBar extends React.Component<TopBarProps, TopBarState> {
 | 
			
		||||
                            </MenuItem>
 | 
			
		||||
                        </Link>
 | 
			
		||||
                    )}
 | 
			
		||||
                    <Link to={WebsitePaths.Whitepaper} type={LinkType.External} shouldOpenInNewTab={true}>
 | 
			
		||||
                    <Link to={WebsitePaths.Whitepaper} shouldOpenInNewTab={true}>
 | 
			
		||||
                        <MenuItem className="py2">{this.props.translate.get(Key.Whitepaper, Deco.Cap)}</MenuItem>
 | 
			
		||||
                    </Link>
 | 
			
		||||
                    <Link to={WebsitePaths.About}>
 | 
			
		||||
@@ -294,7 +286,7 @@ export class TopBar extends React.Component<TopBarProps, TopBarState> {
 | 
			
		||||
                    <Link to={WebsitePaths.Careers}>
 | 
			
		||||
                        <MenuItem className="py2">{this.props.translate.get(Key.Careers, Deco.Cap)}</MenuItem>
 | 
			
		||||
                    </Link>
 | 
			
		||||
                    <Link to={constants.URL_BLOG} type={LinkType.External} shouldOpenInNewTab={true}>
 | 
			
		||||
                    <Link to={constants.URL_BLOG} shouldOpenInNewTab={true}>
 | 
			
		||||
                        <MenuItem className="py2">{this.props.translate.get(Key.Blog, Deco.Cap)}</MenuItem>
 | 
			
		||||
                    </Link>
 | 
			
		||||
                    <Link to={WebsitePaths.FAQ}>
 | 
			
		||||
 
 | 
			
		||||
@@ -1,4 +1,4 @@
 | 
			
		||||
import { colors, Link, LinkType } from '@0xproject/react-shared';
 | 
			
		||||
import { colors, Link } from '@0xproject/react-shared';
 | 
			
		||||
import * as _ from 'lodash';
 | 
			
		||||
import * as React from 'react';
 | 
			
		||||
 | 
			
		||||
@@ -12,7 +12,7 @@ interface TopBarMenuItemProps {
 | 
			
		||||
    title: string;
 | 
			
		||||
    path?: string;
 | 
			
		||||
    isPrimary?: boolean;
 | 
			
		||||
    linkType: LinkType;
 | 
			
		||||
    shouldOpenInNewTab?: boolean;
 | 
			
		||||
    style?: React.CSSProperties;
 | 
			
		||||
    className?: string;
 | 
			
		||||
    isNightVersion?: boolean;
 | 
			
		||||
@@ -25,6 +25,7 @@ export class TopBarMenuItem extends React.Component<TopBarMenuItemProps, TopBarM
 | 
			
		||||
        isPrimary: false,
 | 
			
		||||
        style: DEFAULT_STYLE,
 | 
			
		||||
        className: '',
 | 
			
		||||
        shouldOpenInNewTab: false,
 | 
			
		||||
        isNightVersion: false,
 | 
			
		||||
    };
 | 
			
		||||
    public render(): React.ReactNode {
 | 
			
		||||
@@ -37,7 +38,7 @@ export class TopBarMenuItem extends React.Component<TopBarMenuItemProps, TopBarM
 | 
			
		||||
        );
 | 
			
		||||
        return (
 | 
			
		||||
            <div className={`center ${this.props.className}`} style={{ ...this.props.style, color: menuItemColor }}>
 | 
			
		||||
                <Link to={this.props.path} type={this.props.linkType} fontColor={linkColor}>
 | 
			
		||||
                <Link to={this.props.path} shouldOpenInNewTab={this.props.shouldOpenInNewTab} fontColor={linkColor}>
 | 
			
		||||
                    {itemContent}
 | 
			
		||||
                </Link>
 | 
			
		||||
            </div>
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@ import {
 | 
			
		||||
    colors,
 | 
			
		||||
    constants as sharedConstants,
 | 
			
		||||
    Link,
 | 
			
		||||
    LinkType,
 | 
			
		||||
    MarkdownLinkBlock,
 | 
			
		||||
    NestedSidebarMenu,
 | 
			
		||||
    utils as sharedUtils,
 | 
			
		||||
@@ -89,7 +88,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: '0x starter project',
 | 
			
		||||
                to: 'https://github.com/0xProject/0x-starter-project',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -144,7 +142,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: '@0xproject/sra-spec',
 | 
			
		||||
                to: 'https://github.com/0xProject/0x-monorepo/tree/development/packages/sra-spec',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    ],
 | 
			
		||||
@@ -156,7 +153,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'abi-gen',
 | 
			
		||||
                to: 'https://github.com/0xProject/0x-monorepo/tree/development/packages/abi-gen',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -213,7 +209,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: '0x Event Extractor',
 | 
			
		||||
                to: 'https://github.com/0xTracker/0x-event-extractor',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -223,7 +218,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: '0x Tracker Worker',
 | 
			
		||||
                to: 'https://github.com/0xTracker/0x-tracker-worker',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -233,7 +227,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'Aquaduct',
 | 
			
		||||
                to: 'https://www.npmjs.com/package/aqueduct',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -243,7 +236,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'Aquaduct Server SDK',
 | 
			
		||||
                to: 'https://github.com/ERCdEX/aqueduct-server-sdk',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -252,7 +244,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://www.npmjs.com/package/ddex-api',
 | 
			
		||||
                title: 'DDEX Node.js SDK',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -261,7 +252,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://github.com/ERCdEX/widget',
 | 
			
		||||
                title: 'ERCdex Widget',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -270,7 +260,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://github.com/ERCdEX/java',
 | 
			
		||||
                title: 'ERCdex Java SDK',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -279,7 +268,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://github.com/ERCdEX/python',
 | 
			
		||||
                title: 'ERCdex Python SDK',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -289,7 +277,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'Massive',
 | 
			
		||||
                to: 'https://github.com/NoteGio/massive',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -298,7 +285,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://github.com/NoteGio/openrelay',
 | 
			
		||||
                title: 'OpenRelay',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -308,7 +294,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'OpenRelay.js',
 | 
			
		||||
                to: 'https://github.com/NoteGio/openrelay.js',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -318,7 +303,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'Radar SDK',
 | 
			
		||||
                to: 'https://github.com/RadarRelay/sdk',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -328,7 +312,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                title: 'The Ocean Javascript SDK',
 | 
			
		||||
                to: 'https://github.com/TheOceanTrade/theoceanx-javascript',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -337,7 +320,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://www.npmjs.com/package/tokenlon-sdk',
 | 
			
		||||
                title: 'Tokenlon Javascript SDK',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
        {
 | 
			
		||||
@@ -346,7 +328,6 @@ const CATEGORY_TO_PACKAGES: { [category: string]: Package[] } = {
 | 
			
		||||
                to: 'https://github.com/wildnothing/asset-data-decoder',
 | 
			
		||||
                title: 'AssetData decoder library in Java',
 | 
			
		||||
                shouldOpenInNewTab: true,
 | 
			
		||||
                type: LinkType.External,
 | 
			
		||||
            },
 | 
			
		||||
        },
 | 
			
		||||
    ],
 | 
			
		||||
@@ -560,7 +541,6 @@ export class Home extends React.Component<HomeProps, HomeState> {
 | 
			
		||||
                            <Link
 | 
			
		||||
                                to={pkg.link.to}
 | 
			
		||||
                                fontColor={colors.lightLinkBlue}
 | 
			
		||||
                                type={pkg.link.type}
 | 
			
		||||
                                shouldOpenInNewTab={!!pkg.link.shouldOpenInNewTab}
 | 
			
		||||
                            >
 | 
			
		||||
                                <Text Tag="div" fontColor={colors.lightLinkBlue} fontWeight="bold">
 | 
			
		||||
@@ -584,7 +564,6 @@ export class Home extends React.Component<HomeProps, HomeState> {
 | 
			
		||||
                                <Link
 | 
			
		||||
                                    to={pkg.link.to}
 | 
			
		||||
                                    fontColor={colors.lightLinkBlue}
 | 
			
		||||
                                    type={pkg.link.type}
 | 
			
		||||
                                    shouldOpenInNewTab={!!pkg.link.shouldOpenInNewTab}
 | 
			
		||||
                                >
 | 
			
		||||
                                    <Container className="flex">
 | 
			
		||||
 
 | 
			
		||||
@@ -3,7 +3,6 @@ import {
 | 
			
		||||
    colors,
 | 
			
		||||
    constants as sharedConstants,
 | 
			
		||||
    HeaderSizes,
 | 
			
		||||
    LinkType,
 | 
			
		||||
    MarkdownSection,
 | 
			
		||||
    NestedSidebarMenu,
 | 
			
		||||
    Styles,
 | 
			
		||||
@@ -234,7 +233,6 @@ export class Wiki extends React.Component<WikiProps, WikiState> {
 | 
			
		||||
                return {
 | 
			
		||||
                    to: sharedUtils.getIdFromName(article.title),
 | 
			
		||||
                    title: article.title,
 | 
			
		||||
                    type: LinkType.ReactScroll,
 | 
			
		||||
                };
 | 
			
		||||
            });
 | 
			
		||||
            sectionNameToLinks[sectionName] = articleLinks;
 | 
			
		||||
 
 | 
			
		||||
		Reference in New Issue
	
	Block a user