import React, {Component} from 'react'; import {connect} from 'react-redux'; import {Col} from 'reactstrap'; import {uploadOrderDocument, badFile} from '../../../actions/cart/cartActions'; import Dropzone from 'react-dropzone'; import {API_SERVER} from '../../../config'; import FileDownloader from '../../../helpers/FileDownloader'; import {cartTexts} from '../../../constants/cartConstants'; import {getDocumentIcon} from '../../../helpers/DocumentHelper'; import classnames from 'classnames'; const fileHandler = new FileDownloader(); const documentTypes = { 'order_questionaire' : 'Customer Questionnaire', 'order_agreement' : 'Customer Agreement' }; class CartUploadDocument extends Component { constructor(props) { super(props); this.uploadFile = this.uploadFile.bind(this); } uploadFile(packageCartKey, idDocumentType,acceptedFiles, rejectedFiles, packages){ const self = this; acceptedFiles.forEach(file => { self.props.dispatch(uploadOrderDocument(packageCartKey, idDocumentType, file, packages)); }); if(rejectedFiles && rejectedFiles.length) { this.props.dispatch(badFile()); } } downloadDocument(document){ fileHandler.download( `${API_SERVER}/wp-json/wiaas/cart/items/${this.props.cartItem.key}/documents/${this.props.idDocumentType}?document_key=${document.key}`, `${document.name}.${document.extension}`); } downloadTemplate(document) { fileHandler.download( `${API_SERVER}/wp-json/wiaas/documents?document_id=${document.id}`, `${document.name}.${document.extension}`); } render() { const {idDocumentType, cartItem, uploadedDocument, templateDocument, packages} = this.props; return ( { templateDocument &&

{documentTypes[idDocumentType]} {cartTexts.labels.TEMPLATE}:

{this.downloadTemplate(templateDocument)}}> {templateDocument.name}

{this.uploadFile(cartItem.key, idDocumentType, acceptedFiles, rejectedFiles, packages)}}> { uploadedDocument ? (

Drag and drop or click to replace {uploadedDocument.name}.{uploadedDocument.extension}

To upload multiple files, please pack the files to one zip-file and upload the zip-file

) : (

Drag and drop or click to upload file

To upload multiple files, please pack the files to one zip-file and upload the zip-file

) }
{ uploadedDocument &&
{this.downloadDocument(uploadedDocument)}}> {uploadedDocument.name}
}
} ); } } export default connect()(CartUploadDocument);