diff options
author | Christopher Speller <crspeller@gmail.com> | 2015-11-19 07:59:47 -0500 |
---|---|---|
committer | Christopher Speller <crspeller@gmail.com> | 2015-11-19 07:59:47 -0500 |
commit | 0dbbdaa45e639d508a4e75933a42ac4c313202d2 (patch) | |
tree | 9d2fbf30217bc4e87464e4dccaadc058dc922e39 /web/react/components | |
parent | eee88fc0a626ad9b53b49b0be5e761f944d6109d (diff) | |
parent | 49ffa06024059855755d6cd8f8bf95998c66adfd (diff) | |
download | chat-0dbbdaa45e639d508a4e75933a42ac4c313202d2.tar.gz chat-0dbbdaa45e639d508a4e75933a42ac4c313202d2.tar.bz2 chat-0dbbdaa45e639d508a4e75933a42ac4c313202d2.zip |
Merge pull request #1464 from hmhealey/plt733
PLT-733 Changed file uploads to scroll currently uploading files into view
Diffstat (limited to 'web/react/components')
-rw-r--r-- | web/react/components/file_preview.jsx | 21 |
1 files changed, 14 insertions, 7 deletions
diff --git a/web/react/components/file_preview.jsx b/web/react/components/file_preview.jsx index df5deb8bc..b8c86ed67 100644 --- a/web/react/components/file_preview.jsx +++ b/web/react/components/file_preview.jsx @@ -8,9 +8,14 @@ export default class FilePreview extends React.Component { super(props); 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) { 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')); } } + render() { var previews = []; - this.props.files.forEach(function setupPreview(fullFilename) { + this.props.files.forEach((fullFilename) => { var filename = fullFilename; var originalFilename = filename; var filenameSplit = filename.split('.'); @@ -72,11 +78,12 @@ export default class FilePreview extends React.Component { </div> ); } - }.bind(this)); + }); - this.props.uploadsInProgress.forEach(function addUploadsInProgress(clientId) { + this.props.uploadsInProgress.forEach((clientId) => { previews.push( <div + ref={clientId} key={clientId} className='preview-div' data-client-id={clientId} @@ -93,7 +100,7 @@ export default class FilePreview extends React.Component { </a> </div> ); - }.bind(this)); + }); return ( <div className='preview-container'> @@ -104,8 +111,8 @@ export default class FilePreview extends React.Component { } FilePreview.defaultProps = { - files: null, - uploadsInProgress: null + files: [], + uploadsInProgress: [] }; FilePreview.propTypes = { onRemove: React.PropTypes.func.isRequired, |