diff --git a/packages/website/package.json b/packages/website/package.json index a40b23b551..65b0fa3a6a 100644 --- a/packages/website/package.json +++ b/packages/website/package.json @@ -57,7 +57,6 @@ "rc-slider": "^8.6.3", "react": "^16.5.2", "react-copy-to-clipboard": "^5.0.0", - "react-document-title": "^2.0.3", "react-dom": "^16.5.2", "react-flickity-component": "^3.1.0", "react-headroom": "2.2.2", diff --git a/packages/website/public/index.html b/packages/website/public/index.html index fcc1ffe098..1cd35f1332 100644 --- a/packages/website/public/index.html +++ b/packages/website/public/index.html @@ -3,16 +3,7 @@ - - - - - - 0x: The Protocol for Trading Tokens diff --git a/packages/website/ts/components/document_title.tsx b/packages/website/ts/components/document_title.tsx new file mode 100644 index 0000000000..81fb021a5f --- /dev/null +++ b/packages/website/ts/components/document_title.tsx @@ -0,0 +1,15 @@ +import * as React from 'react'; +import { Helmet } from 'react-helmet'; + +import { DocumentMetadata } from '../utils/document_meta_constants'; + +export interface DocumentTitleProps extends DocumentMetadata {} + +export const DocumentTitle: React.StatelessComponent = ({ title, description }) => ( + + {title} + + + + +); diff --git a/packages/website/ts/components/portal/portal.tsx b/packages/website/ts/components/portal/portal.tsx index 6ebbf8d1fb..3d7c672583 100644 --- a/packages/website/ts/components/portal/portal.tsx +++ b/packages/website/ts/components/portal/portal.tsx @@ -2,7 +2,6 @@ import { colors, Link } from '@0x/react-shared'; import { BigNumber } from '@0x/utils'; import * as _ from 'lodash'; import * as React from 'react'; -import * as DocumentTitle from 'react-document-title'; import { Route, RouteComponentProps, Switch } from 'react-router-dom'; import { Blockchain } from 'ts/blockchain'; @@ -234,7 +233,6 @@ export class Portal extends React.Component { return ( - - - +
diff --git a/packages/website/ts/pages/about/mission.tsx b/packages/website/ts/pages/about/mission.tsx index ab8949faec..69fe07f15b 100644 --- a/packages/website/ts/pages/about/mission.tsx +++ b/packages/website/ts/pages/about/mission.tsx @@ -1,14 +1,15 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { AboutPageLayout } from 'ts/components/aboutPageLayout'; import { Definition } from 'ts/components/definition'; +import { DocumentTitle } from 'ts/components/document_title'; import { Image } from 'ts/components/image'; import { Column, Section } from 'ts/components/newLayout'; import { Heading } from 'ts/components/text'; import { constants } from 'ts/utils/constants'; +import { documentConstants } from 'ts/utils/document_meta_constants'; const values = [ { @@ -38,7 +39,7 @@ export const NextAboutMission = () => ( linkLabel="Our mission and values" href={constants.URL_MISSION_AND_VALUES_BLOG_POST} > - +
0x Offices diff --git a/packages/website/ts/pages/about/press.tsx b/packages/website/ts/pages/about/press.tsx index 03003d6561..1ffa11d1fb 100644 --- a/packages/website/ts/pages/about/press.tsx +++ b/packages/website/ts/pages/about/press.tsx @@ -1,12 +1,13 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { AboutPageLayout } from 'ts/components/aboutPageLayout'; import { Button } from 'ts/components/button'; +import { DocumentTitle } from 'ts/components/document_title'; import { Column, FlexWrap } from 'ts/components/newLayout'; import { Paragraph } from 'ts/components/text'; +import { documentConstants } from 'ts/utils/document_meta_constants'; interface HighlightProps { logo: string; @@ -66,7 +67,7 @@ export const NextAboutPress = () => ( } > - + ); diff --git a/packages/website/ts/pages/about/team.tsx b/packages/website/ts/pages/about/team.tsx index 808fea0496..82506a3cf0 100644 --- a/packages/website/ts/pages/about/team.tsx +++ b/packages/website/ts/pages/about/team.tsx @@ -1,14 +1,15 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { colors } from 'ts/style/colors'; import { AboutPageLayout } from 'ts/components/aboutPageLayout'; +import { DocumentTitle } from 'ts/components/document_title'; import { Column, Section } from 'ts/components/newLayout'; import { Heading, Paragraph } from 'ts/components/text'; import { WebsitePaths } from 'ts/types'; +import { documentConstants } from 'ts/utils/document_meta_constants'; interface TeamMember { name: string; @@ -194,7 +195,7 @@ export const NextAboutTeam = () => ( linkLabel="Join the team" to={WebsitePaths.AboutJobs} > - +
0x Team diff --git a/packages/website/ts/pages/credits.tsx b/packages/website/ts/pages/credits.tsx index fa0aa3c57c..50dc185fc3 100644 --- a/packages/website/ts/pages/credits.tsx +++ b/packages/website/ts/pages/credits.tsx @@ -4,11 +4,13 @@ import * as React from 'react'; import { Banner } from 'ts/components/banner'; import { Button } from 'ts/components/button'; import { CenteredDefinition } from 'ts/components/centeredDefinition'; +import { DocumentTitle } from 'ts/components/document_title'; import { Hero } from 'ts/components/hero'; import { ModalContact, ModalContactType } from 'ts/components/modals/modal_contact'; import { FlexWrap, Section } from 'ts/components/newLayout'; import { SiteWrap } from 'ts/components/siteWrap'; import { Heading } from 'ts/components/text'; +import { documentConstants } from 'ts/utils/document_meta_constants'; export interface CreditsProps {} @@ -24,6 +26,7 @@ export class Credits extends React.Component { public render(): React.ReactNode { return ( + - + diff --git a/packages/website/ts/pages/ecosystem.tsx b/packages/website/ts/pages/ecosystem.tsx index 8e367b21f7..455fc3a099 100644 --- a/packages/website/ts/pages/ecosystem.tsx +++ b/packages/website/ts/pages/ecosystem.tsx @@ -1,16 +1,17 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { colors } from 'ts/style/colors'; import { Button } from 'ts/components/button'; +import { DocumentTitle } from 'ts/components/document_title'; import { Icon } from 'ts/components/icon'; import { Column, Section, WrapGrid } from 'ts/components/newLayout'; import { SiteWrap } from 'ts/components/siteWrap'; import { Heading, Paragraph } from 'ts/components/text'; import { constants } from 'ts/utils/constants'; +import { documentConstants } from 'ts/utils/document_meta_constants'; interface BenefitProps { title: string; @@ -55,7 +56,7 @@ const benefits: BenefitProps[] = [ export const NextEcosystem = () => ( - +
diff --git a/packages/website/ts/pages/faq/faq.tsx b/packages/website/ts/pages/faq/faq.tsx index 548db1d1d1..b86a1ca322 100644 --- a/packages/website/ts/pages/faq/faq.tsx +++ b/packages/website/ts/pages/faq/faq.tsx @@ -1,7 +1,7 @@ import { colors, Styles } from '@0x/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; -import * as DocumentTitle from 'react-document-title'; +import { DocumentTitle } from 'ts/components/document_title'; import { Footer } from 'ts/components/old_footer'; import { TopBar } from 'ts/components/top_bar/top_bar'; import { Question } from 'ts/pages/faq/question'; @@ -9,6 +9,7 @@ import { Dispatcher } from 'ts/redux/dispatcher'; import { FAQQuestion, FAQSection, WebsitePaths } from 'ts/types'; import { configs } from 'ts/utils/configs'; import { constants } from 'ts/utils/constants'; +import { documentConstants } from 'ts/utils/document_meta_constants'; import { Translate } from 'ts/utils/translate'; export interface FAQProps { @@ -412,7 +413,7 @@ export class FAQ extends React.Component { public render(): React.ReactNode { return (
- +

diff --git a/packages/website/ts/pages/governance/governance.tsx b/packages/website/ts/pages/governance/governance.tsx index e6f2ee812d..28604b2ba6 100644 --- a/packages/website/ts/pages/governance/governance.tsx +++ b/packages/website/ts/pages/governance/governance.tsx @@ -1,11 +1,11 @@ import { BigNumber } from '@0x/utils'; import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled from 'styled-components'; import { Banner } from 'ts/components/banner'; import { Button } from 'ts/components/button'; +import { DocumentTitle } from 'ts/components/document_title'; import { ModalContact } from 'ts/components/modals/modal_contact'; import { Column, FlexWrap, Section } from 'ts/components/newLayout'; import { SiteWrap } from 'ts/components/siteWrap'; @@ -17,6 +17,7 @@ import { VoteInfo, VoteValue } from 'ts/pages/governance/vote_form'; import { VoteStats } from 'ts/pages/governance/vote_stats'; import { colors } from 'ts/style/colors'; import { configs } from 'ts/utils/configs'; +import { documentConstants } from 'ts/utils/document_meta_constants'; import { utils } from 'ts/utils/utils'; interface LabelInterface { @@ -109,7 +110,7 @@ export class Governance extends React.Component { const { isVoteReceived, tally } = this.state; return ( - +
diff --git a/packages/website/ts/pages/instant.tsx b/packages/website/ts/pages/instant.tsx index 586665d5ba..81785e59ca 100644 --- a/packages/website/ts/pages/instant.tsx +++ b/packages/website/ts/pages/instant.tsx @@ -1,12 +1,12 @@ import { utils as sharedUtils } from '@0x/react-shared'; import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import styled, { keyframes } from 'styled-components'; import { Banner } from 'ts/components/banner'; import { Button } from 'ts/components/button'; import { Definition } from 'ts/components/definition'; +import { DocumentTitle } from 'ts/components/document_title'; import { Hero } from 'ts/components/hero'; import { Section, SectionProps } from 'ts/components/newLayout'; import { SiteWrap } from 'ts/components/siteWrap'; @@ -14,6 +14,7 @@ import { Heading, Paragraph } from 'ts/components/text'; import { Configurator } from 'ts/pages/instant/configurator'; import { colors } from 'ts/style/colors'; import { WebsitePaths } from 'ts/types'; +import { documentConstants } from 'ts/utils/document_meta_constants'; import { utils } from 'ts/utils/utils'; import { ModalContact } from '../components/modals/modal_contact'; @@ -88,7 +89,7 @@ export class Next0xInstant extends React.Component { public render(): React.ReactNode { return ( - + { public render(): React.ReactNode { return ( - + diff --git a/packages/website/ts/pages/launch_kit.tsx b/packages/website/ts/pages/launch_kit.tsx index dd4de4d999..b3f09e6d2a 100644 --- a/packages/website/ts/pages/launch_kit.tsx +++ b/packages/website/ts/pages/launch_kit.tsx @@ -1,17 +1,15 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; - -import { Hero } from 'ts/components/hero'; - import { Banner } from 'ts/components/banner'; import { Button } from 'ts/components/button'; import { Definition } from 'ts/components/definition'; +import { DocumentTitle } from 'ts/components/document_title'; +import { Hero } from 'ts/components/hero'; import { Icon } from 'ts/components/icon'; -import { SiteWrap } from 'ts/components/siteWrap'; - import { Section } from 'ts/components/newLayout'; +import { SiteWrap } from 'ts/components/siteWrap'; import { constants } from 'ts/utils/constants'; +import { documentConstants } from 'ts/utils/document_meta_constants'; import { ModalContact } from '../components/modals/modal_contact'; @@ -36,7 +34,7 @@ export class NextLaunchKit extends React.Component { public render(): React.ReactNode { return ( - + { public render(): React.ReactNode { return ( + ( - +
diff --git a/packages/website/ts/pages/why.tsx b/packages/website/ts/pages/why.tsx index 48888d10a7..784d42bd8e 100644 --- a/packages/website/ts/pages/why.tsx +++ b/packages/website/ts/pages/why.tsx @@ -1,17 +1,18 @@ import * as _ from 'lodash'; import * as React from 'react'; -import DocumentTitle from 'react-document-title'; import ScrollableAnchor, { configureAnchors } from 'react-scrollable-anchor'; import styled from 'styled-components'; import { Banner } from 'ts/components/banner'; import { Button } from 'ts/components/button'; import { Definition } from 'ts/components/definition'; +import { DocumentTitle } from 'ts/components/document_title'; import { Hero } from 'ts/components/hero'; import { Column, Section, WrapSticky } from 'ts/components/newLayout'; import { SiteWrap } from 'ts/components/siteWrap'; import { Slide, Slider } from 'ts/components/slider/slider'; import { Heading } from 'ts/components/text'; +import { documentConstants } from 'ts/utils/document_meta_constants'; import { ModalContact } from '../components/modals/modal_contact'; @@ -99,7 +100,7 @@ export class NextWhy extends React.Component { ); return ( - + =3.31.2", # HACK! this is web3's dependency! # above works around https://github.com/ethereum/web3.py/issues/1179 "mypy_extensions", - "web3", ], extras_require={ "dev": [