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} docsSidebars={docsSidebars}
metadata={metadata} metadata={metadata}
/> />
<div className={styles.docContent}> <div className={styles.docContainer}>
{this.props.children} <div className={styles.docContent}>{this.props.children}</div>
<DocsPaginator docsMetadatas={docsMetadatas} metadata={metadata} /> <div className={styles.paginatorContainer}>
<DocsPaginator
docsMetadatas={docsMetadatas}
metadata={metadata}
/>
</div>
</div> </div>
</div> </div>
</Layout> </Layout>

View file

@ -1,13 +1,20 @@
.mainContainer { .mainContainer {
display: flex; display: flex;
flex-direction: row; flex-direction: row;
margin-bottom: 30px;
margin-left: auto; margin-left: auto;
margin-right: auto; margin-right: auto;
margin-top: 40px;
justify-content: space-between; justify-content: space-between;
} }
.docContent { .docContainer {
flex-grow: 1; 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 React from 'react';
import {Link} from 'react-router-dom'; import {Link} from 'react-router-dom';
import styles from './styles.css';
export default class DocsPaginator extends React.Component { export default class DocsPaginator extends React.Component {
render() { render() {
const {docsMetadatas, metadata} = this.props; const {docsMetadatas, metadata} = this.props;
return ( return (
<div> <div className={styles.paginatorContainer}>
{metadata.previous && <div>
docsMetadatas[metadata.previous] && ( {metadata.previous &&
<Link to={docsMetadatas[metadata.previous].permalink}> docsMetadatas[metadata.previous] && (
<span> {metadata.previous_title}</span> <Link
</Link> className={styles.paginatorLink}
)} to={docsMetadatas[metadata.previous].permalink}>
{metadata.next && <svg className={styles.arrow} viewBox="0 0 24 24">
docsMetadatas[metadata.next] && ( <g>
<Link to={docsMetadatas[metadata.next].permalink}> <line x1="19" y1="12" x2="5" y2="12" />
<span>{metadata.next_title} </span> <polyline points="12 19 5 12 12 5" />
</Link> </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> </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; display: block;
padding: 8px 0; padding: 8px 0;
text-decoration: none; text-decoration: none;
transition: color .3s; transition: color 0.3s;
} }
.sidebarLink:hover, .sidebarLink:hover,
.sidebarLinkActive { .sidebarLinkActive {
color: #2e8555; color: #00a388;
} }