feat(v2): skin paginator component (#1033)

This commit is contained in:
Yangshun Tay 2018-10-14 12:29:22 -07:00 committed by GitHub
parent 1bc1762b02
commit bc7be697ad
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
5 changed files with 94 additions and 21 deletions

View file

@ -33,9 +33,14 @@ export default class Docs extends React.Component {
docsSidebars={docsSidebars}
metadata={metadata}
/>
<div className={styles.docContent}>
{this.props.children}
<DocsPaginator docsMetadatas={docsMetadatas} metadata={metadata} />
<div className={styles.docContainer}>
<div className={styles.docContent}>{this.props.children}</div>
<div className={styles.paginatorContainer}>
<DocsPaginator
docsMetadatas={docsMetadatas}
metadata={metadata}
/>
</div>
</div>
</div>
</Layout>

View file

@ -1,13 +1,20 @@
.mainContainer {
display: flex;
flex-direction: row;
margin-bottom: 30px;
margin-left: auto;
margin-right: auto;
margin-top: 40px;
justify-content: space-between;
}
.docContent {
.docContainer {
flex-grow: 1;
padding: 0 40px;
}
.docContent {
margin-bottom: 48px;
}
.paginatorContainer {
margin: 48px 0;
}

View file

@ -1,23 +1,45 @@
import React from 'react';
import {Link} from 'react-router-dom';
import styles from './styles.css';
export default class DocsPaginator extends React.Component {
render() {
const {docsMetadatas, metadata} = this.props;
return (
<div>
{metadata.previous &&
docsMetadatas[metadata.previous] && (
<Link to={docsMetadatas[metadata.previous].permalink}>
<span> {metadata.previous_title}</span>
</Link>
)}
{metadata.next &&
docsMetadatas[metadata.next] && (
<Link to={docsMetadatas[metadata.next].permalink}>
<span>{metadata.next_title} </span>
</Link>
)}
<div className={styles.paginatorContainer}>
<div>
{metadata.previous &&
docsMetadatas[metadata.previous] && (
<Link
className={styles.paginatorLink}
to={docsMetadatas[metadata.previous].permalink}>
<svg className={styles.arrow} viewBox="0 0 24 24">
<g>
<line x1="19" y1="12" x2="5" y2="12" />
<polyline points="12 19 5 12 12 5" />
</g>
</svg>{' '}
<span className={styles.label}>{metadata.previous_title}</span>
</Link>
)}
</div>
<div className={styles.paginatorRightContainer}>
{metadata.next &&
docsMetadatas[metadata.next] && (
<Link
className={styles.paginatorLink}
to={docsMetadatas[metadata.next].permalink}>
<span className={styles.label}>{metadata.next_title}</span>{' '}
<svg className={styles.arrow} viewBox="0 0 24 24">
<g>
<line x1="5" y1="12" x2="19" y2="12" />
<polyline points="12 5 19 12 12 19" />
</g>
</svg>
</Link>
)}
</div>
</div>
);
}

View file

@ -0,0 +1,39 @@
.paginatorContainer {
display: flex;
flex-direction: row;
justify-content: space-between;
}
.paginatorRightContainer {
text-align: right;
}
.paginatorLink {
background-color: #f2f3f5;
color: #000;
border-radius: 30px;
display: inline-block;
height: 1.5em;
text-decoration: none;
transition: 0.3s all ease-in-out;
padding: 12px 24px;
}
.paginatorLink:hover {
background-color: #00a388;
color: #fff;
}
.arrow {
fill: none;
height: 1.5em;
stroke: currentColor;
stroke-linejoin: round;
stroke-linecap: round;
stroke-width: 2;
width: 1.5em;
}
.label {
vertical-align: super;
}

View file

@ -32,10 +32,10 @@
display: block;
padding: 8px 0;
text-decoration: none;
transition: color .3s;
transition: color 0.3s;
}
.sidebarLink:hover,
.sidebarLinkActive {
color: #2e8555;
color: #00a388;
}