Skip to content

Instantly share code, notes, and snippets.

@jacek213
Created June 6, 2017 10:12
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save jacek213/77914ddc30edf4ac8eef052bf1ddd992 to your computer and use it in GitHub Desktop.
Save jacek213/77914ddc30edf4ac8eef052bf1ddd992 to your computer and use it in GitHub Desktop.
# @cjsx React.DOM
@PaginatorSection = React.createClass
displayName: 'PaginatorSection'
_handleOnClick: (pageNumber) ->
@props.onPaginate(pageNumber)
_handleNextClick: (e) ->
e.preventDefault();
@_handleOnClick(@props.currentPage + 1)
_handlePrevClick: (e) ->
e.preventDefault();
@_handleOnClick(@props.currentPage - 1)
_handleFirstClick: (e) ->
e.preventDefault();
@_handleOnClick(1)
_handleLastClick: (e) ->
e.preventDefault();
@_handleOnClick(@props.totalPages)
_isFirst: ->
@props.currentPage == 1
_isLast: ->
@props.currentPage == @props.totalPages
_cssClass: (i) ->
if i == @props.currentPage
'active'
render: ->
if @props.totalPages > 1
<div className="pagination pagination-compact">
<ul className="pagination pagination-compact">
{
unless @_isFirst()
<li>
<a href="#" onClick={@_handleFirstClick}>«</a>
</li>
}
{
unless @_isFirst()
<li>
<a href="#" onClick={@_handlePrevClick}>‹</a>
</li>
}
{
for i in [1..@props.totalPages]
<li key={i} className={@_cssClass(i)}>
<PaginatorLink pageNumber={i} onPaginatorLinkClick={@_handleOnClick} />
</li>
}
{
unless @_isLast()
<li>
<a href="#" onClick={@_handleNextClick}>›</a>
</li>
}
{
unless @_isLast()
<li>
<a href="#" onClick={@_handleLastClick}>»</a>
</li>
}
</ul>
</div>
else
<span></span>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment