diff --git a/v2/lib/theme/Docs/index.js b/v2/lib/theme/Docs/index.js index 6e9f0d9be4..4e311f4cde 100644 --- a/v2/lib/theme/Docs/index.js +++ b/v2/lib/theme/Docs/index.js @@ -2,8 +2,11 @@ import React from 'react'; import {Link} from 'react-router-dom'; import Helmet from 'react-helmet'; -import styles from './styles.css'; + import Layout from '@theme/Layout'; // eslint-disable-line +import DocsPaginator from '@theme/DocsPaginator'; // eslint-disable-line + +import styles from './styles.css'; export default class Docs extends React.Component { renderSidebar(metadata, docsSidebars, docsMetadatas) { @@ -62,22 +65,8 @@ export default class Docs extends React.Component { {version && }
{this.renderSidebar(metadata, docsSidebars, docsMetadatas)}
-
- {metadata.previous && - docsMetadatas[metadata.previous] && ( - - ← {metadata.previous_title} - - )} - {' ⚫️ '} - {metadata.next && - docsMetadatas[metadata.next] && ( - - {metadata.next_title} → - - )} -
{this.props.children}
+ ); } diff --git a/v2/lib/theme/DocsPaginator/index.js b/v2/lib/theme/DocsPaginator/index.js new file mode 100644 index 0000000000..d220c52df2 --- /dev/null +++ b/v2/lib/theme/DocsPaginator/index.js @@ -0,0 +1,24 @@ +import React from 'react'; +import {Link} from 'react-router-dom'; + +export default class DocsPaginator extends React.Component { + render() { + const {docsMetadatas, metadata} = this.props; + return ( +
+ {metadata.previous && + docsMetadatas[metadata.previous] && ( + + ← {metadata.previous_title} + + )} + {metadata.next && + docsMetadatas[metadata.next] && ( + + {metadata.next_title} → + + )} +
+ ); + } +} diff --git a/v2/lib/theme/Footer/index.js b/v2/lib/theme/Footer/index.js new file mode 100644 index 0000000000..09b6ecea5c --- /dev/null +++ b/v2/lib/theme/Footer/index.js @@ -0,0 +1,25 @@ +import React from 'react'; +import {Link} from 'react-router-dom'; + +import styles from './styles.css'; + +function Footer(props) { + const {pagesMetadatas, docsMetadatas, location} = props; + const docsFlatMetadatas = Object.values(docsMetadatas); + const routeLinks = [...pagesMetadatas, ...docsFlatMetadatas].map( + data => + data.permalink !== location.pathname && ( +
  • + {data.permalink} +
  • + ), + ); + + return ( +
    + +
    + ); +} + +export default Footer; diff --git a/v2/lib/theme/Footer/styles.css b/v2/lib/theme/Footer/styles.css new file mode 100644 index 0000000000..cc5696cbb0 --- /dev/null +++ b/v2/lib/theme/Footer/styles.css @@ -0,0 +1,39 @@ +.footer { + color: #777; + margin-top: 30px; + padding: 10px 15px; + height: 20px; + text-align: center; + border-top: 1px solid #e6e6e6; +} + +.routeLinks { + margin: 0; + padding: 0; + list-style: none; + position: absolute; + right: 0; + left: 0; +} + +.routeLinks li { + display: inline; +} + +.routeLinks li a { + color: inherit; + margin: 3px; + padding: 3px 7px; + text-decoration: none; + border: 1px solid transparent; + border-radius: 3px; +} + +.routeLinks li a.selected, +.routeLinks li a:hover { + border-color: rgba(175, 47, 47, 0.1); +} + +.routeLinks li a.selected { + border-color: rgba(175, 47, 47, 0.2); +} diff --git a/v2/lib/theme/Layout/index.js b/v2/lib/theme/Layout/index.js index d35f93c6a8..dcec995176 100644 --- a/v2/lib/theme/Layout/index.js +++ b/v2/lib/theme/Layout/index.js @@ -1,6 +1,5 @@ import React from 'react'; -import {Link} from 'react-router-dom'; -import styles from './styles.css'; +import Footer from '@theme/Footer'; // eslint-disable-line /* eslint-disable react/prefer-stateless-function */ export default class Layout extends React.Component { @@ -11,21 +10,14 @@ export default class Layout extends React.Component { docsMetadatas = {}, location, } = this.props; - const docsFlatMetadatas = Object.values(docsMetadatas); - const routeLinks = [...pagesMetadatas, ...docsFlatMetadatas].map( - data => - data.permalink !== location.pathname && ( -
  • - {data.permalink} -
  • - ), - ); return (
    {children} -
    -
      {routeLinks}
    -
    +
    ); } diff --git a/v2/lib/theme/Layout/styles.css b/v2/lib/theme/Layout/styles.css deleted file mode 100644 index 735c34ca39..0000000000 --- a/v2/lib/theme/Layout/styles.css +++ /dev/null @@ -1,39 +0,0 @@ -.footer { - color: #777; - margin-top: 30px; - padding: 10px 15px; - height: 20px; - text-align: center; - border-top: 1px solid #e6e6e6; -} - -.routeLinks { - margin: 0; - padding: 0; - list-style: none; - position: absolute; - right: 0; - left: 0; -} - -.routeLinks li { - display: inline; -} - -.routeLinks li a { - color: inherit; - margin: 3px; - padding: 3px 7px; - text-decoration: none; - border: 1px solid transparent; - border-radius: 3px; -} - -.routeLinks li a.selected, -.routeLinks li a:hover { - border-color: rgba(175, 47, 47, 0.1); -} - -.routeLinks li a.selected { - border-color: rgba(175, 47, 47, 0.2); -} \ No newline at end of file