diff --git a/src/js/components/GridSlider.js b/src/js/components/GridSlider.js index ee7632b6..79d85320 100755 --- a/src/js/components/GridSlider.js +++ b/src/js/components/GridSlider.js @@ -1,28 +1,58 @@ import React, { PropTypes } from 'react' +import FontAwesome from 'react-fontawesome' import GridItem from './GridItem' export default class GridSlider extends React.Component{ constructor(props) { - super(props); + super(props) + + this._pagelimit = 3 + + this.state = { + page: 0 + } + } + + next(){ + if (this.state.page >= this._pagelimit) return false + this.setState({ page: this.state.page + 1 }) + } + + previous(){ + if (this.state.page <= 0) return false + this.setState({ page: this.state.page - 1 }) } render(){ if( this.props.tracks ){ - var className = "grid-slider" + + var className = "grid-slider-wrapper" if( this.props.className ) className += ' '+this.props.className + + var style = { + left: '-'+(this.state.page * 100)+'%' + } + return (
-
- { - this.props.tracks.map( - (track, index) => { - var item = Object.assign({}, track.album, { artists: track.artists }) - return - } - ) - } + { this.props.title ? this.props.title : null } +
+ this.previous() } /> + = this._pagelimit} onClick={ () => this.next() } /> +
+
+
+ { + this.props.tracks.map( + (track, index) => { + var item = Object.assign({}, track.album, { artists: track.artists }) + return + } + ) + } +
); diff --git a/src/js/views/discover/Discover.js b/src/js/views/discover/Discover.js index d8841978..ae2023aa 100755 --- a/src/js/views/discover/Discover.js +++ b/src/js/views/discover/Discover.js @@ -28,12 +28,8 @@ class Discover extends React.Component{ { this.props.discover.map( (discover, index) => { - return ( -
-

Because you listened to

- -
- ) + var title =

Because you listened to

+ return } ) } diff --git a/src/scss/components/_grid-slider.scss b/src/scss/components/_grid-slider.scss index e4b6ecc4..8eb3bdc2 100755 --- a/src/scss/components/_grid-slider.scss +++ b/src/scss/components/_grid-slider.scss @@ -1,12 +1,37 @@ .grid-slider-wrapper { padding-bottom: 10px; + position: relative; + + .controls { + position: absolute; + top: -5px; + right: 0; + + .fa { + display: inline-block; + padding: 8px; + margin-left: 2px; + cursor: pointer; + opacity: 0.5; + @include animate(); + + &[disabled] { + opacity: 0.2; + cursor: not-allowed; + } + + &:hover { + opacity: 1; + } + } + } .grid-slider { position: relative; overflow-x: hidden; overflow-y: hidden; - height: 22vw; + height: 17vw; .has-touch-events & { overflow-x: scroll; @@ -18,6 +43,7 @@ left: 0; width: 400%; box-sizing: border-box; + @include animate(); .grid-item { width: 4%; @@ -28,7 +54,7 @@ @include responsive( $bp_medium ){ .grid-slider { - height: 21vw; + height: 23vw; } }