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

53 lines
1.2 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 = {
2016-11-28 08:24:01 +13:00
url: require('../../assets/no-image.svg')
2016-10-24 21:26:01 +13:00
}
}
2016-10-24 21:26:01 +13:00
componentDidMount(){
this.mapImageSizes();
}
2016-10-24 21:26:01 +13:00
componentWillReceiveProps( nextProps ){
2016-11-28 08:24:01 +13:00
this.mapImageSizes( nextProps );
2016-10-24 21:26:01 +13:00
}
mapImageSizes( props = this.props ){
// no images
if( !this.props.image && !this.props.images ){
this.setState({ url: require('../../assets/no-image.svg') })
2016-11-28 08:24:01 +13:00
// single image
}else if( this.props.image ){
2016-11-28 08:24:01 +13:00
this.setState({ url: this.props.image })
2016-10-25 17:01:37 +13:00
2016-11-28 08:24:01 +13:00
// multiple images
}else if( this.props.images && this.props.images.length > 0 ){
var images = helpers.sizedImages( this.props.images )
var size = 'medium'
if( this.props.size ) size = this.props.size
this.setState({ url: images[size] })
}
}
render(){
var style = { backgroundImage: 'url("'+this.state.url+'")' }
2016-10-25 17:01:37 +13:00
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>
);
}
}