mirror of
https://github.com/mattermost/mattermost.git
synced 2025-02-25 18:55:24 -06:00
63 lines
1.9 KiB
JavaScript
63 lines
1.9 KiB
JavaScript
// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
|
|
// See License.txt for license information.
|
|
|
|
import ViewImageModal from './view_image.jsx';
|
|
import FileAttachment from './file_attachment.jsx';
|
|
import Constants from '../utils/constants.jsx';
|
|
|
|
export default class FileAttachmentList extends React.Component {
|
|
constructor(props) {
|
|
super(props);
|
|
|
|
this.handleImageClick = this.handleImageClick.bind(this);
|
|
|
|
this.state = {showPreviewModal: false, startImgId: 0};
|
|
}
|
|
handleImageClick(indexClicked) {
|
|
this.setState({showPreviewModal: true, startImgId: indexClicked});
|
|
}
|
|
render() {
|
|
var filenames = this.props.filenames;
|
|
|
|
var postFiles = [];
|
|
for (var i = 0; i < filenames.length && i < Constants.MAX_DISPLAY_FILES; i++) {
|
|
postFiles.push(
|
|
<FileAttachment
|
|
key={'file_attachment_' + i}
|
|
filename={filenames[i]}
|
|
index={i}
|
|
handleImageClick={this.handleImageClick}
|
|
/>
|
|
);
|
|
}
|
|
|
|
return (
|
|
<div>
|
|
<div className='post-image__columns'>
|
|
{postFiles}
|
|
</div>
|
|
<ViewImageModal
|
|
show={this.state.showPreviewModal}
|
|
onModalDismissed={() => this.setState({showPreviewModal: false})}
|
|
channelId={this.props.channelId}
|
|
userId={this.props.userId}
|
|
startId={this.state.startImgId}
|
|
filenames={filenames}
|
|
/>
|
|
</div>
|
|
);
|
|
}
|
|
}
|
|
|
|
FileAttachmentList.propTypes = {
|
|
|
|
// a list of file pathes displayed by this
|
|
filenames: React.PropTypes.arrayOf(React.PropTypes.string).isRequired,
|
|
|
|
// the channel that this is part of
|
|
channelId: React.PropTypes.string,
|
|
|
|
// the user that owns the post that this is attached to
|
|
userId: React.PropTypes.string
|
|
};
|