diff options
author | Corey Hulen <corey@hulen.com> | 2015-08-28 07:32:33 -0700 |
---|---|---|
committer | Corey Hulen <corey@hulen.com> | 2015-08-28 07:32:33 -0700 |
commit | 604166068ea8cd881a1c0a513cea3f992e9a65ea (patch) | |
tree | 462171ce22fa32cf9e1b275c10f71f3f66edb9eb /web | |
parent | a26b486ba29493dfda8f6a876e908a5d4c1c10f8 (diff) | |
parent | e54354f92a5022256e11b245c030bb62eb5232e7 (diff) | |
download | chat-604166068ea8cd881a1c0a513cea3f992e9a65ea.tar.gz chat-604166068ea8cd881a1c0a513cea3f992e9a65ea.tar.bz2 chat-604166068ea8cd881a1c0a513cea3f992e9a65ea.zip |
Merge pull request #513 from mattermost/mm-1861
MM-1861 Fixes root images not loading when switching RHS threads.
Diffstat (limited to 'web')
-rw-r--r-- | web/react/components/file_attachment.jsx | 19 | ||||
-rw-r--r-- | web/react/components/file_attachment_list.jsx | 2 |
2 files changed, 16 insertions, 5 deletions
diff --git a/web/react/components/file_attachment.jsx b/web/react/components/file_attachment.jsx index ab550d500..45e6c5e28 100644 --- a/web/react/components/file_attachment.jsx +++ b/web/react/components/file_attachment.jsx @@ -10,7 +10,7 @@ module.exports = React.createClass({ canSetState: false, propTypes: { // a list of file pathes displayed by the parent FileAttachmentList - filenames: React.PropTypes.arrayOf(React.PropTypes.string).isRequired, + filename: React.PropTypes.string.isRequired, // the index of this attachment preview in the parent FileAttachmentList index: React.PropTypes.number.isRequired, // the identifier of the modal dialog used to preview files @@ -22,9 +22,17 @@ module.exports = React.createClass({ return {fileSize: -1}; }, componentDidMount: function() { + this.loadFiles(); + }, + componentDidUpdate: function(prevProps) { + if (this.props.filename !== prevProps.filename) { + this.loadFiles(); + } + }, + loadFiles: function() { this.canSetState = true; - var filename = this.props.filenames[this.props.index]; + var filename = this.props.filename; if (filename) { var fileInfo = utils.splitFileLocation(filename); @@ -71,6 +79,10 @@ module.exports = React.createClass({ this.canSetState = false; }, shouldComponentUpdate: function(nextProps, nextState) { + if (!utils.areStatesEqual(nextProps, this.props)) { + return true; + } + // the only time this object should update is when it receives an updated file size which we can usually handle without re-rendering if (nextState.fileSize != this.state.fileSize) { if (this.refs.fileSize) { @@ -87,8 +99,7 @@ module.exports = React.createClass({ } }, render: function() { - var filenames = this.props.filenames; - var filename = filenames[this.props.index]; + var filename = this.props.filename; var fileInfo = utils.splitFileLocation(filename); var type = utils.getFileType(fileInfo.ext); diff --git a/web/react/components/file_attachment_list.jsx b/web/react/components/file_attachment_list.jsx index b92442957..df4424d03 100644 --- a/web/react/components/file_attachment_list.jsx +++ b/web/react/components/file_attachment_list.jsx @@ -26,7 +26,7 @@ module.exports = React.createClass({ var postFiles = []; for (var i = 0; i < filenames.length && i < Constants.MAX_DISPLAY_FILES; i++) { - postFiles.push(<FileAttachment key={i} filenames={filenames} index={i} modalId={modalId} handleImageClick={this.handleImageClick} />); + postFiles.push(<FileAttachment key={i} filename={filenames[i]} index={i} modalId={modalId} handleImageClick={this.handleImageClick} />); } return ( |