zent
Version:
一套前端设计语言和基于React的实现
68 lines (58 loc) • 1.28 kB
JavaScript
import React from 'react';
import parser from '../data/parser';
import Pager from './Pager';
import Jump from './Jump';
const { number, func } = React.PropTypes;
const CorePagination = React.createClass({
propTypes: {
current: number,
total: number,
onChange: func
},
renderPager(item, index) {
if (!item) {
return null;
}
if (item.type === 'input') {
return (
<Jump
key={index}
content={item.content}
total={item.total}
onChange={this.props.onChange}
/>
);
}
return (
<Pager
key={index}
content={item.content}
current={item.current}
target={item.target}
type={item.type}
onChange={this.props.onChange}
/>
);
},
render() {
let self = this;
let { current, total, maxPageToShow } = this.props;
if (maxPageToShow && maxPageToShow > 0) {
total = Math.min(total, maxPageToShow);
}
let pages = parser.getPages({
current,
total
});
return (
<div className="pagination-list">
{
pages.map((item, index) => {
return self.renderPager(item, index);
})
}
</div>
);
}
});
export default CorePagination;