Merge pull request #1464 from hmhealey/plt733

PLT-733 Changed file uploads to scroll currently uploading files into view
Этот коммит содержится в:
Christopher Speller
2015-11-19 07:59:47 -05:00
родитель eee88fc0a6 49ffa06024
Коммит 0dbbdaa45e

Просмотреть файл

@@ -8,9 +8,14 @@ export default class FilePreview extends React.Component {
super(props); super(props);
this.handleRemove = this.handleRemove.bind(this); this.handleRemove = this.handleRemove.bind(this);
this.state = {};
} }
componentDidUpdate() {
if (this.props.uploadsInProgress.length > 0) {
ReactDOM.findDOMNode(this.refs[this.props.uploadsInProgress[0]]).scrollIntoView();
}
}
handleRemove(e) { handleRemove(e) {
var previewDiv = e.target.parentNode.parentNode; var previewDiv = e.target.parentNode.parentNode;
@@ -20,9 +25,10 @@ export default class FilePreview extends React.Component {
this.props.onRemove(previewDiv.getAttribute('data-client-id')); this.props.onRemove(previewDiv.getAttribute('data-client-id'));
} }
} }
render() { render() {
var previews = []; var previews = [];
this.props.files.forEach(function setupPreview(fullFilename) { this.props.files.forEach((fullFilename) => {
var filename = fullFilename; var filename = fullFilename;
var originalFilename = filename; var originalFilename = filename;
var filenameSplit = filename.split('.'); var filenameSplit = filename.split('.');
@@ -72,11 +78,12 @@ export default class FilePreview extends React.Component {
</div> </div>
); );
} }
}.bind(this)); });
this.props.uploadsInProgress.forEach(function addUploadsInProgress(clientId) { this.props.uploadsInProgress.forEach((clientId) => {
previews.push( previews.push(
<div <div
ref={clientId}
key={clientId} key={clientId}
className='preview-div' className='preview-div'
data-client-id={clientId} data-client-id={clientId}
@@ -93,7 +100,7 @@ export default class FilePreview extends React.Component {
</a> </a>
</div> </div>
); );
}.bind(this)); });
return ( return (
<div className='preview-container'> <div className='preview-container'>
@@ -104,8 +111,8 @@ export default class FilePreview extends React.Component {
} }
FilePreview.defaultProps = { FilePreview.defaultProps = {
files: null, files: [],
uploadsInProgress: null uploadsInProgress: []
}; };
FilePreview.propTypes = { FilePreview.propTypes = {
onRemove: React.PropTypes.func.isRequired, onRemove: React.PropTypes.func.isRequired,