Files
Iris/src/js/components/Thumbnail.js

56 lines
1.1 KiB
JavaScript
Raw Normal View History

import React, { PropTypes } from 'react'
2016-10-25 17:01:37 +13:00
import * as helpers from '../helpers'
export default class Thumbnail extends React.Component{
constructor(props) {
super(props);
2016-10-24 21:26:01 +13:00
this.state = {
small: false,
medium: false,
large: false,
huge: false
}
}
2016-10-24 21:26:01 +13:00
componentDidMount(){
this.mapImageSizes();
}
2016-10-24 21:26:01 +13:00
componentWillReceiveProps( nextProps ){
2016-11-01 08:57:28 +13:00
this.mapImageSizes( nextProps.images );
2016-10-24 21:26:01 +13:00
}
2016-11-01 08:57:28 +13:00
mapImageSizes( images = this.props.images ){
2016-10-25 17:01:37 +13:00
var state = this.state;
if( images.length <= 0 ){
state = {
small: require('../../images/no-image.svg'),
medium: require('../../images/no-image.svg'),
large: require('../../images/no-image.svg'),
huge: require('../../images/no-image.svg')
2016-10-24 21:26:01 +13:00
}
2016-10-25 17:01:37 +13:00
}else{
2016-11-01 19:27:59 +13:00
state = helpers.sizedImages( images );
}
2016-10-25 17:01:37 +13:00
this.setState( state );
}
render(){
2016-10-25 17:01:37 +13:00
var style = {
backgroundImage: 'url("'+this.state[this.props.size]+'")'
}
var className = 'thumbnail '+this.props.size;
if( this.props.circle ) className += ' circle';
return (
2016-10-25 17:01:37 +13:00
<div className={className}>
<div className="image" style={style}></div>
</div>
);
}
}