ImagePreview.js 3.65 KB
import React, {Component} from 'react'

import * as SelectActionCreators from '../../actions/profilationSelect'
import {connect} from 'react-redux';

import ZipIcon from '../../../img/upload.svg'

import PDF from 'react-pdf-js';

import closePrevie from '../../../img/remove.svg'

class ImagePreview extends Component{
	constructor(props){
		super(props)
		this.state={
			loading:true
		}
		this.closePreview=this.closePreview.bind(this)
	}

	componentWillMount(){
		if(this.state.loading){
			setTimeout(function(){this.setState({
				loading:false
			})}.bind(this),1500)
		}
	}
	closePreview(e){
		e.preventDefault()
		this.setState({
			loading:true
		})
		this.props.updateActivation(this.props.index,this.props.name,'')
		this.props.updateActivation(this.props.index,'isComplete',false)
		/*this.props.updateActivation(this.props.index,this.props.name+'_preview','')
		this.props.updateActivation(this.props.index,this.props.name+'_filename','')*/
	}

	render(){
		var previewClass='preview'

		if(this.props.src.length>1){
			previewClass=previewClass+' preview-multiple'
		}


		
		if(!this.props.activationSteps[this.props.index][this.props.name+'_loading'])	{		
			return(
					<div className="preview-ct">
				<div className={previewClass}>

				
                    <figure class="close-preview" onClick={e => this.closePreview(e)}>
                      <img src={closePrevie} alt=''/>
                    </figure>
              	
                    
                  {/*this.props.src[this.props.src.length-1].split('/')[0]==='data:application' && 

                    	<PDF file={this.props.src[this.props.src.length-1]} page={1} />
              	*/}
              	{/*this.props.src[this.props.src.length-1].split('/')[0]==='data:image' && 
				<div className="wrapper-img-preview"> <img class='img-preview' src={this.props.src[this.props.src.length-1]} alt=''/></div>

                  */}

                    {(this.props.ext[this.props.ext.length-1]==='pdf'  ||
					this.props.ext[this.props.ext.length-1]==='PDF') &&
					<div className='wrapper-pdf'>
						<div className="wrapper-pdf--inner">
							<PDF file={this.props.src[this.props.src.length-1]} page={1} />
						</div>
					</div>
                    }
              	{(this.props.ext[this.props.ext.length-1]==='jpg' ||  
              		this.props.ext[this.props.ext.length-1]==='png' || 
              		this.props.ext[this.props.ext.length-1]==='jpeg') && 
				<div className="wrapper-img-preview"> <img class='img-preview' src={this.props.src[this.props.src.length-1]} alt=''/></div>

                  }

                  {this.props.ext[this.props.ext.length-1]==='zip'&& 
				<div className="wrapper-img-preview zip-file"> <img class='img-preview' src={ZipIcon} alt=''/></div>

                  }



                  {(typeof this.props.src !== 'undefined' && this.props.src.length>1) &&
                  	<p className="tooptip_pict"> {this.props.src.length} </p>
                  }
                    </div>
                  
                  </div>
				)

		}
		else{
			return null
		}
				
	}
}

const mapStateToProps = state => {
  return {
    activationSteps: state.ProfilationSelectReducer.activationSteps
  }
};

const mapDispatchToProps = dispatch => ({
 
 updateActivation: (index,prop,value) => dispatch(SelectActionCreators.updateActivation(index,prop,value))
});

/*Profilation.propTypes = {
  steps: PropTypes.array.isRequired,
  activeStep: PropTypes.number.isRequired,
  updatePropValue: PropTypes.func.isRequired
}*/

export default connect(mapStateToProps, mapDispatchToProps)(ImagePreview);