diff options
Diffstat (limited to 'web/react/components')
68 files changed, 172 insertions, 156 deletions
diff --git a/web/react/components/access_history_modal.jsx b/web/react/components/access_history_modal.jsx index af4d3fb0f..cd1db32ec 100644 --- a/web/react/components/access_history_modal.jsx +++ b/web/react/components/access_history_modal.jsx @@ -68,7 +68,7 @@ class AccessHistoryModal extends React.Component { render() { var content; if (this.state.audits.loading) { - content = (<LoadingScreen />); + content = (<LoadingScreen/>); } else { content = ( <AuditTable diff --git a/web/react/components/activity_log_modal.jsx b/web/react/components/activity_log_modal.jsx index f8a2af571..1a0c9c6d5 100644 --- a/web/react/components/activity_log_modal.jsx +++ b/web/react/components/activity_log_modal.jsx @@ -199,7 +199,7 @@ export default class ActivityLogModal extends React.Component { className='activity-log__table' > <div className='activity-log__report'> - <div className='report__platform'><i className={devicePicture} />{devicePlatform}</div> + <div className='report__platform'><i className={devicePicture}/>{devicePlatform}</div> <div className='report__info'> <div> <FormattedMessage @@ -231,7 +231,7 @@ export default class ActivityLogModal extends React.Component { let content; if (this.state.sessions.loading) { - content = <LoadingScreen />; + content = <LoadingScreen/>; } else { content = <form role='form'>{activityList}</form>; } diff --git a/web/react/components/admin_console/admin_controller.jsx b/web/react/components/admin_console/admin_controller.jsx index 695e2083a..de0b085bc 100644 --- a/web/react/components/admin_console/admin_controller.jsx +++ b/web/react/components/admin_console/admin_controller.jsx @@ -130,47 +130,47 @@ export default class AdminController extends React.Component { } render() { - var tab = <LoadingScreen />; + var tab = <LoadingScreen/>; if (this.state.config != null) { if (this.state.selected === 'email_settings') { - tab = <EmailSettingsTab config={this.state.config} />; + tab = <EmailSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'log_settings') { - tab = <LogSettingsTab config={this.state.config} />; + tab = <LogSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'logs') { - tab = <LogsTab />; + tab = <LogsTab/>; } else if (this.state.selected === 'audits') { - tab = <AuditsTab />; + tab = <AuditsTab/>; } else if (this.state.selected === 'image_settings') { - tab = <FileSettingsTab config={this.state.config} />; + tab = <FileSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'privacy_settings') { - tab = <PrivacySettingsTab config={this.state.config} />; + tab = <PrivacySettingsTab config={this.state.config}/>; } else if (this.state.selected === 'rate_settings') { - tab = <RateSettingsTab config={this.state.config} />; + tab = <RateSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'gitlab_settings') { - tab = <GitLabSettingsTab config={this.state.config} />; + tab = <GitLabSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'sql_settings') { - tab = <SqlSettingsTab config={this.state.config} />; + tab = <SqlSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'team_settings') { - tab = <TeamSettingsTab config={this.state.config} />; + tab = <TeamSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'service_settings') { - tab = <ServiceSettingsTab config={this.state.config} />; + tab = <ServiceSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'legal_and_support_settings') { - tab = <LegalAndSupportSettingsTab config={this.state.config} />; + tab = <LegalAndSupportSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'ldap_settings') { - tab = <LdapSettingsTab config={this.state.config} />; + tab = <LdapSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'license') { - tab = <LicenseSettingsTab config={this.state.config} />; + tab = <LicenseSettingsTab config={this.state.config}/>; } else if (this.state.selected === 'team_users') { if (this.state.teams) { - tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]} />; + tab = <TeamUsersTab team={this.state.teams[this.state.selectedTeam]}/>; } } else if (this.state.selected === 'team_analytics') { if (this.state.teams) { - tab = <TeamAnalyticsTab team={this.state.teams[this.state.selectedTeam]} />; + tab = <TeamAnalyticsTab team={this.state.teams[this.state.selectedTeam]}/>; } } else if (this.state.selected === 'system_analytics') { - tab = <SystemAnalyticsTab />; + tab = <SystemAnalyticsTab/>; } } diff --git a/web/react/components/admin_console/admin_sidebar.jsx b/web/react/components/admin_console/admin_sidebar.jsx index 795b19eec..6621e5743 100644 --- a/web/react/components/admin_console/admin_sidebar.jsx +++ b/web/react/components/admin_console/admin_sidebar.jsx @@ -236,7 +236,7 @@ export default class AdminSidebar extends React.Component { return ( <div className='sidebar--left sidebar--collapsable'> <div> - <AdminSidebarHeader /> + <AdminSidebarHeader/> <div className='nav-pills__container'> <ul className='nav nav-pills nav-stacked'> <li> diff --git a/web/react/components/admin_console/admin_sidebar_header.jsx b/web/react/components/admin_console/admin_sidebar_header.jsx index db499265e..8c9f74934 100644 --- a/web/react/components/admin_console/admin_sidebar_header.jsx +++ b/web/react/components/admin_console/admin_sidebar_header.jsx @@ -61,7 +61,7 @@ export default class SidebarHeader extends React.Component { </div> </div> </a> - <AdminNavbarDropdown ref='dropdown' /> + <AdminNavbarDropdown ref='dropdown'/> </div> ); } diff --git a/web/react/components/admin_console/audits.jsx b/web/react/components/admin_console/audits.jsx index 173e63b45..c519e0a23 100644 --- a/web/react/components/admin_console/audits.jsx +++ b/web/react/components/admin_console/audits.jsx @@ -54,7 +54,7 @@ export default class Audits extends React.Component { } if (this.state.audits === null) { - content = <LoadingScreen />; + content = <LoadingScreen/>; } else { content = ( <div style={{margin: '10px'}}> diff --git a/web/react/components/admin_console/logs.jsx b/web/react/components/admin_console/logs.jsx index 71a4a5d8c..8457999f5 100644 --- a/web/react/components/admin_console/logs.jsx +++ b/web/react/components/admin_console/logs.jsx @@ -47,7 +47,7 @@ export default class Logs extends React.Component { var content = null; if (this.state.logs === null) { - content = <LoadingScreen />; + content = <LoadingScreen/>; } else { content = []; @@ -61,7 +61,7 @@ export default class Logs extends React.Component { style.color = 'red'; } - content.push(<br key={'br_' + i} />); + content.push(<br key={'br_' + i}/>); content.push( <span key={'log_' + i} diff --git a/web/react/components/admin_console/statistic_count.jsx b/web/react/components/admin_console/statistic_count.jsx index 57af0ed1b..118a0ad31 100644 --- a/web/react/components/admin_console/statistic_count.jsx +++ b/web/react/components/admin_console/statistic_count.jsx @@ -4,10 +4,6 @@ import {FormattedMessage} from 'mm-intl'; export default class StatisticCount extends React.Component { - constructor(props) { - super(props); - } - render() { let loading = ( <FormattedMessage diff --git a/web/react/components/admin_console/team_users.jsx b/web/react/components/admin_console/team_users.jsx index 1177c9c56..256576f9b 100644 --- a/web/react/components/admin_console/team_users.jsx +++ b/web/react/components/admin_console/team_users.jsx @@ -112,9 +112,6 @@ export default class UserList extends React.Component { this.getTeamProfiles(newProps.team.id); } - componentWillUnmount() { - } - render() { var serverError = ''; if (this.state.serverError) { @@ -134,7 +131,7 @@ export default class UserList extends React.Component { /> </h3> {serverError} - <LoadingScreen /> + <LoadingScreen/> </div> ); } diff --git a/web/react/components/audit_table.jsx b/web/react/components/audit_table.jsx index 31d04f19b..47eee6d3f 100644 --- a/web/react/components/audit_table.jsx +++ b/web/react/components/audit_table.jsx @@ -207,9 +207,6 @@ const holders = defineMessages({ }); class AuditTable extends React.Component { - constructor(props) { - super(props); - } render() { var accessList = []; diff --git a/web/react/components/authorize.jsx b/web/react/components/authorize.jsx index 4a4985268..35ad7ac10 100644 --- a/web/react/components/authorize.jsx +++ b/web/react/components/authorize.jsx @@ -27,7 +27,9 @@ export default class Authorize extends React.Component { window.location.replace(data.redirect); } }, - () => {} + () => { + //Do nothing on error + } ); } handleDeny() { diff --git a/web/react/components/center_panel.jsx b/web/react/components/center_panel.jsx index 7d2be04d6..6cb749075 100644 --- a/web/react/components/center_panel.jsx +++ b/web/react/components/center_panel.jsx @@ -55,10 +55,10 @@ export default class CenterPanel extends React.Component { let postsContainer; let createPost; if (this.state.showTutorialScreens) { - postsContainer = <TutorialIntroScreens />; + postsContainer = <TutorialIntroScreens/>; createPost = null; } else if (this.state.showPostFocus) { - postsContainer = <PostFocusView />; + postsContainer = <PostFocusView/>; handleClick = function clickHandler(e) { e.preventDefault(); @@ -80,13 +80,13 @@ export default class CenterPanel extends React.Component { </div> ); } else { - postsContainer = <PostsViewContainer />; + postsContainer = <PostsViewContainer/>; createPost = ( <div className='post-create__container' id='post-create' > - <CreatePost /> + <CreatePost/> </div> ); } @@ -108,7 +108,7 @@ export default class CenterPanel extends React.Component { className='app__content' > <div id='channel-header'> - <ChannelHeader /> + <ChannelHeader/> </div> {postsContainer} {createPost} diff --git a/web/react/components/channel_header.jsx b/web/react/components/channel_header.jsx index a827cbcc6..b5eb546cf 100644 --- a/web/react/components/channel_header.jsx +++ b/web/react/components/channel_header.jsx @@ -408,7 +408,7 @@ export default class ChannelHeader extends React.Component { aria-expanded='true' > <strong className='heading'>{channelTitle} </strong> - <span className='glyphicon glyphicon-chevron-down header-dropdown__icon' /> + <span className='glyphicon glyphicon-chevron-down header-dropdown__icon'/> </a> <ul className='dropdown-menu' @@ -439,7 +439,7 @@ export default class ChannelHeader extends React.Component { channelId={channel.id} /> </th> - <th className='search-bar__container'><NavbarSearchBox /></th> + <th className='search-bar__container'><NavbarSearchBox/></th> <th> <div className='dropdown channel-header__links'> <OverlayTrigger diff --git a/web/react/components/channel_invite_modal.jsx b/web/react/components/channel_invite_modal.jsx index 7dc2c0a11..c9fe871d0 100644 --- a/web/react/components/channel_invite_modal.jsx +++ b/web/react/components/channel_invite_modal.jsx @@ -138,7 +138,7 @@ export default class ChannelInviteModal extends React.Component { var content; if (this.state.loading) { - content = (<LoadingScreen />); + content = (<LoadingScreen/>); } else { content = ( <MemberList diff --git a/web/react/components/channel_members_modal.jsx b/web/react/components/channel_members_modal.jsx index f3cbef719..fd452f206 100644 --- a/web/react/components/channel_members_modal.jsx +++ b/web/react/components/channel_members_modal.jsx @@ -172,7 +172,7 @@ export default class ChannelMembersModal extends React.Component { let content; if (this.state.loading) { - content = (<LoadingScreen />); + content = (<LoadingScreen/>); } else { content = ( <div className='team-member-list'> diff --git a/web/react/components/channel_notifications_modal.jsx b/web/react/components/channel_notifications_modal.jsx index 59ef8966e..6591de687 100644 --- a/web/react/components/channel_notifications_modal.jsx +++ b/web/react/components/channel_notifications_modal.jsx @@ -168,7 +168,7 @@ export default class ChannelNotificationsModal extends React.Component { checked={notifyActive[1]} onChange={this.handleUpdateNotifyLevel.bind(this, 'all')} /> - <FormattedMessage id='channel_notifications.allActivity' /> + <FormattedMessage id='channel_notifications.allActivity'/> </label> <br/> </div> @@ -179,7 +179,7 @@ export default class ChannelNotificationsModal extends React.Component { checked={notifyActive[2]} onChange={this.handleUpdateNotifyLevel.bind(this, 'mention')} /> - <FormattedMessage id='channel_notifications.onlyMentions' /> + <FormattedMessage id='channel_notifications.onlyMentions'/> </label> <br/> </div> @@ -190,7 +190,7 @@ export default class ChannelNotificationsModal extends React.Component { checked={notifyActive[3]} onChange={this.handleUpdateNotifyLevel.bind(this, 'none')} /> - <FormattedMessage id='channel_notifications.never' /> + <FormattedMessage id='channel_notifications.never'/> </label> </div> </div> @@ -234,11 +234,11 @@ export default class ChannelNotificationsModal extends React.Component { /> ); } else if (this.state.notifyLevel === 'mention') { - describe = (<FormattedMessage id='channel_notifications.onlyMentions' />); + describe = (<FormattedMessage id='channel_notifications.onlyMentions'/>); } else if (this.state.notifyLevel === 'all') { - describe = (<FormattedMessage id='channel_notifications.allActivity' />); + describe = (<FormattedMessage id='channel_notifications.allActivity'/>); } else { - describe = (<FormattedMessage id='channel_notifications.never' />); + describe = (<FormattedMessage id='channel_notifications.never'/>); } handleUpdateSection = function updateSection(e) { @@ -311,7 +311,7 @@ export default class ChannelNotificationsModal extends React.Component { defaultMessage='For all unread messages' /> </label> - <br /> + <br/> </div> <div className='radio'> <label> @@ -320,9 +320,9 @@ export default class ChannelNotificationsModal extends React.Component { checked={this.state.markUnreadLevel === 'mention'} onChange={this.handleUpdateMarkUnreadLevel.bind(this, 'mention')} /> - <FormattedMessage id='channel_notifications.onlyMentions' /> + <FormattedMessage id='channel_notifications.onlyMentions'/> </label> - <br /> + <br/> </div> </div> )]; @@ -363,7 +363,7 @@ export default class ChannelNotificationsModal extends React.Component { /> ); } else { - describe = (<FormattedMessage id='channel_notifications.onlyMentions' />); + describe = (<FormattedMessage id='channel_notifications.onlyMentions'/>); } const handleUpdateSection = function handleUpdateSection(e) { diff --git a/web/react/components/channel_view.jsx b/web/react/components/channel_view.jsx index 7cbb638a0..9c4131292 100644 --- a/web/react/components/channel_view.jsx +++ b/web/react/components/channel_view.jsx @@ -7,9 +7,6 @@ import SidebarRight from '../components/sidebar_right.jsx'; import SidebarRightMenu from '../components/sidebar_right_menu.jsx'; export default class ChannelView extends React.Component { - constructor(props) { - super(props); - } render() { return ( <div className='container-fluid'> @@ -31,7 +28,7 @@ export default class ChannelView extends React.Component { > <Sidebar/> </div> - <CenterPanel /> + <CenterPanel/> </div> ); } diff --git a/web/react/components/create_post.jsx b/web/react/components/create_post.jsx index 48b6594a1..9d7a19554 100644 --- a/web/react/components/create_post.jsx +++ b/web/react/components/create_post.jsx @@ -477,7 +477,7 @@ class CreatePost extends React.Component { className='send-button theme' onClick={this.handleSubmit} > - <i className='fa fa-paper-plane' /> + <i className='fa fa-paper-plane'/> </a> {tutorialTip} </div> diff --git a/web/react/components/delete_post_modal.jsx b/web/react/components/delete_post_modal.jsx index 95b2e58a8..773d0b420 100644 --- a/web/react/components/delete_post_modal.jsx +++ b/web/react/components/delete_post_modal.jsx @@ -178,8 +178,8 @@ export default class DeletePostModal extends React.Component { term: (postTerm) }} /> - <br /> - <br /> + <br/> + <br/> {commentWarning} {error} </Modal.Body> diff --git a/web/react/components/edit_post_modal.jsx b/web/react/components/edit_post_modal.jsx index e54b7d9b8..380ca7bde 100644 --- a/web/react/components/edit_post_modal.jsx +++ b/web/react/components/edit_post_modal.jsx @@ -135,9 +135,9 @@ class EditPostModal extends React.Component { PreferenceStore.removeChangeListener(this.onPreferenceChange); } render() { - var error = (<div className='form-group'><br /></div>); + var error = (<div className='form-group'><br/></div>); if (this.state.error) { - error = (<div className='form-group has-error'><br /><label className='control-label'>{this.state.error}</label></div>); + error = (<div className='form-group has-error'><br/><label className='control-label'>{this.state.error}</label></div>); } return ( diff --git a/web/react/components/email_verify.jsx b/web/react/components/email_verify.jsx index ef1a62130..702a20eba 100644 --- a/web/react/components/email_verify.jsx +++ b/web/react/components/email_verify.jsx @@ -70,7 +70,7 @@ export default class EmailVerify extends React.Component { ); if (this.props.resendSuccess) { resendConfirm = ( - <div><br /><p className='alert alert-success'><i className='fa fa-check'></i> + <div><br/><p className='alert alert-success'><i className='fa fa-check'></i> <FormattedMessage id='email_verify.sent' defaultMessage=' Verification email sent.' diff --git a/web/react/components/file_attachment.jsx b/web/react/components/file_attachment.jsx index 776394828..810f90b13 100644 --- a/web/react/components/file_attachment.jsx +++ b/web/react/components/file_attachment.jsx @@ -245,7 +245,9 @@ class FileAttachment extends React.Component { this.setState({fileSize: parseInt(data.size, 10), mime: data.mime}); } }.bind(this), - function error() {} + function error() { + // Do nothing + } ); } else { fileSizeString = utils.fileSizeToString(this.state.fileSize); @@ -312,4 +314,4 @@ FileAttachment.propTypes = { handleImageClick: React.PropTypes.func }; -export default injectIntl(FileAttachment);
\ No newline at end of file +export default injectIntl(FileAttachment); diff --git a/web/react/components/file_info_preview.jsx b/web/react/components/file_info_preview.jsx index 1dac140c9..30c3fc97f 100644 --- a/web/react/components/file_info_preview.jsx +++ b/web/react/components/file_info_preview.jsx @@ -37,7 +37,7 @@ export default function FileInfoPreview({filename, fileUrl, fileInfo, formatMess href={fileUrl} target='_blank' > - <span className='file-details__preview-helper' /> + <span className='file-details__preview-helper'/> <img src={Utils.getPreviewImagePath(filename)}/> </a> <div className='file-details'> @@ -47,3 +47,10 @@ export default function FileInfoPreview({filename, fileUrl, fileInfo, formatMess </div> ); } + +FileInfoPreview.propTypes = { + filename: React.PropTypes.string.isRequired, + fileUrl: React.PropTypes.string.isRequired, + fileInfo: React.PropTypes.object.isRequired, + formatMessage: React.PropTypes.func.isRequired +}; diff --git a/web/react/components/file_upload.jsx b/web/react/components/file_upload.jsx index 0454fe510..cb8ede51b 100644 --- a/web/react/components/file_upload.jsx +++ b/web/react/components/file_upload.jsx @@ -305,7 +305,7 @@ class FileUpload extends React.Component { className='btn btn-file' > <span> - <i className='glyphicon glyphicon-paperclip' /> + <i className='glyphicon glyphicon-paperclip'/> </span> <input ref='fileInput' diff --git a/web/react/components/get_link_modal.jsx b/web/react/components/get_link_modal.jsx index de3387a35..6a5c3b588 100644 --- a/web/react/components/get_link_modal.jsx +++ b/web/react/components/get_link_modal.jsx @@ -48,8 +48,8 @@ export default class GetLinkModal extends React.Component { helpText = ( <p> {this.props.helpText} - <br /> - <br /> + <br/> + <br/> </p> ); } diff --git a/web/react/components/invite_member_modal.jsx b/web/react/components/invite_member_modal.jsx index f2a0a7565..0c0330c40 100644 --- a/web/react/components/invite_member_modal.jsx +++ b/web/react/components/invite_member_modal.jsx @@ -376,7 +376,7 @@ class InviteMemberModal extends React.Component { ); if (this.state.isSendingEmails) { sendButtonLabel = ( - <span><i className='fa fa-spinner fa-spin' /> + <span><i className='fa fa-spinner fa-spin'/> <FormattedMessage id='invite_member.sending' defaultMessage=' Sending' diff --git a/web/react/components/login.jsx b/web/react/components/login.jsx index 0123a0f3c..380790b8f 100644 --- a/web/react/components/login.jsx +++ b/web/react/components/login.jsx @@ -28,7 +28,7 @@ export default class Login extends React.Component { key='gitlab' href={'/' + teamName + '/login/gitlab'} > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='login.gitlab' @@ -46,7 +46,7 @@ export default class Login extends React.Component { key='google' href={'/' + teamName + '/login/google'} > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='login.google' @@ -80,7 +80,7 @@ export default class Login extends React.Component { if (msg != null) { extraBox = ( <div className='alert alert-success'> - <i className='fa fa-check' /> + <i className='fa fa-check'/> {msg} </div> ); diff --git a/web/react/components/member_list.jsx b/web/react/components/member_list.jsx index 8c6dc4209..e6737087b 100644 --- a/web/react/components/member_list.jsx +++ b/web/react/components/member_list.jsx @@ -4,10 +4,6 @@ import MemberListItem from './member_list_item.jsx'; export default class MemberList extends React.Component { - constructor(props) { - super(props); - } - render() { var members = []; diff --git a/web/react/components/member_list_item.jsx b/web/react/components/member_list_item.jsx index 41ea58eeb..88b98738d 100644 --- a/web/react/components/member_list_item.jsx +++ b/web/react/components/member_list_item.jsx @@ -112,7 +112,7 @@ export default class MemberListItem extends React.Component { </div> ); } else { - invite = (<div className='member-role text-capitalize'><span className='fa fa-pencil hidden'></span>{member.roles || <FormattedMessage id='member_item.member' />}</div>); + invite = (<div className='member-role text-capitalize'><span className='fa fa-pencil hidden'></span>{member.roles || <FormattedMessage id='member_item.member'/>}</div>); } return ( diff --git a/web/react/components/more_channels.jsx b/web/react/components/more_channels.jsx index d800f93d8..db61e5f49 100644 --- a/web/react/components/more_channels.jsx +++ b/web/react/components/more_channels.jsx @@ -82,7 +82,7 @@ export default class MoreChannels extends React.Component { if (this.state.channels != null) { var channels = this.state.channels; if (channels.loading) { - moreChannels = <LoadingScreen />; + moreChannels = <LoadingScreen/>; } else if (channels.length) { moreChannels = ( <table className='more-table table'> diff --git a/web/react/components/navbar.jsx b/web/react/components/navbar.jsx index 835298635..a06fb449b 100644 --- a/web/react/components/navbar.jsx +++ b/web/react/components/navbar.jsx @@ -380,7 +380,7 @@ export default class Navbar extends React.Component { <span className='icon-bar'></span> <span className='icon-bar'></span> <span className='icon-bar'></span> - <NotifyCounts /> + <NotifyCounts/> </button> ); @@ -393,7 +393,7 @@ export default class Navbar extends React.Component { data-target='#sidebar-nav' onClick={this.toggleRightSidebar} > - <span dangerouslySetInnerHTML={{__html: Constants.MENU_ICON}} /> + <span dangerouslySetInnerHTML={{__html: Constants.MENU_ICON}}/> </button> ); } @@ -502,7 +502,7 @@ export default class Navbar extends React.Component { className='navbar-toggle pull-right' onClick={this.showSearch} > - <span className='glyphicon glyphicon-search icon--white' /> + <span className='glyphicon glyphicon-search icon--white'/> </button> ); diff --git a/web/react/components/post_attachment_list.jsx b/web/react/components/post_attachment_list.jsx index 9c6700e2d..ae03e15d3 100644 --- a/web/react/components/post_attachment_list.jsx +++ b/web/react/components/post_attachment_list.jsx @@ -4,10 +4,6 @@ import PostAttachment from './post_attachment.jsx'; export default class PostAttachmentList extends React.Component { - constructor(props) { - super(props); - } - render() { let content = []; this.props.attachments.forEach((attachment, i) => { diff --git a/web/react/components/post_attachment_oembed.jsx b/web/react/components/post_attachment_oembed.jsx index 4b12ee95e..d76e5f02e 100644 --- a/web/react/components/post_attachment_oembed.jsx +++ b/web/react/components/post_attachment_oembed.jsx @@ -46,6 +46,7 @@ export default class PostAttachmentOEmbed extends React.Component { } }); } + return null; } render() { diff --git a/web/react/components/post_body_additional_content.jsx b/web/react/components/post_body_additional_content.jsx index 7e6f3f037..4871eea4f 100644 --- a/web/react/components/post_body_additional_content.jsx +++ b/web/react/components/post_body_additional_content.jsx @@ -52,7 +52,7 @@ export default class PostBodyAdditionalContent extends React.Component { render() { let content = []; - if (Boolean(this.props.post.type)) { + if (this.props.post.type) { const component = this.getComponent(); if (component) { diff --git a/web/react/components/post_header.jsx b/web/react/components/post_header.jsx index 037b48096..c52391daa 100644 --- a/web/react/components/post_header.jsx +++ b/web/react/components/post_header.jsx @@ -15,7 +15,7 @@ export default class PostHeader extends React.Component { render() { var post = this.props.post; - let userProfile = <UserProfile userId={post.user_id} />; + let userProfile = <UserProfile userId={post.user_id}/>; let botIndicator; if (post.props && post.props.from_webhook) { diff --git a/web/react/components/posts_view.jsx b/web/react/components/posts_view.jsx index 19ab7d5aa..15810d9cf 100644 --- a/web/react/components/posts_view.jsx +++ b/web/react/components/posts_view.jsx @@ -252,7 +252,7 @@ export default class PostsView extends React.Component { key={currentPostDay.toDateString()} className='date-separator' > - <hr className='separator__hr' /> + <hr className='separator__hr'/> <div className='separator__text'> <FormattedDate value={currentPostDay} @@ -455,7 +455,7 @@ export default class PostsView extends React.Component { href='#' onClick={this.loadMorePostsBottom} > - <FormattedMessage id='posts_view.loadMore' /> + <FormattedMessage id='posts_view.loadMore'/> </a> ); } else { @@ -528,11 +528,11 @@ PostsView.propTypes = { function FloatingTimestamp({isScrolling, post}) { // only show on mobile if ($(window).width() > 768) { - return <noscript />; + return <noscript/>; } if (!post) { - return <noscript />; + return <noscript/>; } const dateString = ( @@ -557,10 +557,15 @@ function FloatingTimestamp({isScrolling, post}) { ); } +FloatingTimestamp.propTypes = { + isScrolling: React.PropTypes.bool.isRequired, + post: React.PropTypes.object +}; + function ScrollToBottomArrows({isScrolling, atBottom, onClick}) { // only show on mobile if ($(window).width() > 768) { - return <noscript />; + return <noscript/>; } let className = 'post-list__arrows'; @@ -573,7 +578,13 @@ function ScrollToBottomArrows({isScrolling, atBottom, onClick}) { className={className} onClick={onClick} > - <span dangerouslySetInnerHTML={{__html: Constants.SCROLL_BOTTOM_ICON}} /> + <span dangerouslySetInnerHTML={{__html: Constants.SCROLL_BOTTOM_ICON}}/> </div> ); } + +ScrollToBottomArrows.propTypes = { + isScrolling: React.PropTypes.bool.isRequired, + atBottom: React.PropTypes.bool.isRequired, + onClick: React.PropTypes.func.isRequired +}; diff --git a/web/react/components/posts_view_container.jsx b/web/react/components/posts_view_container.jsx index 631bd1872..972342021 100644 --- a/web/react/components/posts_view_container.jsx +++ b/web/react/components/posts_view_container.jsx @@ -173,7 +173,9 @@ export default class PostsViewContainer extends React.Component { scrollPostId={this.state.scrollPost} postViewScrolled={this.handlePostsViewScroll} loadMorePostsTopClicked={this.loadMorePostsTop} - loadMorePostsBottomClicked={() => {}} + loadMorePostsBottomClicked={() => { + // Do Nothing + }} showMoreMessagesTop={!this.state.atTop[this.state.currentChannelIndex]} showMoreMessagesBottom={false} introText={channel ? createChannelIntroMessage(channel) : null} diff --git a/web/react/components/rhs_comment.jsx b/web/react/components/rhs_comment.jsx index 201a4c569..2ebca9b8d 100644 --- a/web/react/components/rhs_comment.jsx +++ b/web/react/components/rhs_comment.jsx @@ -246,7 +246,7 @@ class RhsComment extends React.Component { <div> <ul className='post__header'> <li className='col__name'> - <strong><UserProfile userId={post.user_id} /></strong> + <strong><UserProfile userId={post.user_id}/></strong> </li> <li className='col'> <time className='post__time'> diff --git a/web/react/components/rhs_root_post.jsx b/web/react/components/rhs_root_post.jsx index adf66da85..32946ef23 100644 --- a/web/react/components/rhs_root_post.jsx +++ b/web/react/components/rhs_root_post.jsx @@ -185,7 +185,7 @@ export default class RhsRootPost extends React.Component { ); } - let userProfile = <UserProfile userId={post.user_id} />; + let userProfile = <UserProfile userId={post.user_id}/>; let botIndicator; if (post.props && post.props.from_webhook) { diff --git a/web/react/components/rhs_thread.jsx b/web/react/components/rhs_thread.jsx index 945b09e37..667030b3a 100644 --- a/web/react/components/rhs_thread.jsx +++ b/web/react/components/rhs_thread.jsx @@ -196,12 +196,12 @@ export default class RhsThread extends React.Component { var currentId = UserStore.getCurrentId(); var searchForm; if (currentId != null) { - searchForm = <SearchBox />; + searchForm = <SearchBox/>; } return ( <div className='post-right__container'> - <FileUploadOverlay overlayType='right' /> + <FileUploadOverlay overlayType='right'/> <div className='search-bar__container sidebar--right__search-header'>{searchForm}</div> <div className='sidebar-right__body'> <RhsHeaderPost diff --git a/web/react/components/search_bar.jsx b/web/react/components/search_bar.jsx index f7cb1b8f2..1cdd09cc8 100644 --- a/web/react/components/search_bar.jsx +++ b/web/react/components/search_bar.jsx @@ -169,7 +169,7 @@ class SearchBar extends React.Component { style={{overflow: 'visible'}} autoComplete='off' > - <span className='glyphicon glyphicon-search sidebar__search-icon' /> + <span className='glyphicon glyphicon-search sidebar__search-icon'/> <SuggestionBox ref='search' className='form-control search-bar' diff --git a/web/react/components/search_results.jsx b/web/react/components/search_results.jsx index 12c066734..d10c5be27 100644 --- a/web/react/components/search_results.jsx +++ b/web/react/components/search_results.jsx @@ -97,7 +97,7 @@ export default class SearchResults extends React.Component { var currentId = UserStore.getCurrentId(); var searchForm = null; if (currentId) { - searchForm = <SearchBox />; + searchForm = <SearchBox/>; } var noResults = (!results || !results.order || !results.order.length); var searchTerm = SearchStore.getSearchTerm(); @@ -151,7 +151,7 @@ export default class SearchResults extends React.Component { <div className='sidebar--right__content'> <div className='search-bar__container sidebar--right__search-header'>{searchForm}</div> <div className='sidebar-right__body'> - <SearchResultsHeader isMentionSearch={this.props.isMentionSearch} /> + <SearchResultsHeader isMentionSearch={this.props.isMentionSearch}/> <div id='search-items-container' className='search-items-container' diff --git a/web/react/components/search_results_item.jsx b/web/react/components/search_results_item.jsx index d3533037f..3363c97f7 100644 --- a/web/react/components/search_results_item.jsx +++ b/web/react/components/search_results_item.jsx @@ -60,7 +60,7 @@ export default class SearchResultsItem extends React.Component { return ( <div className='search-item__container'> <div className='date-separator'> - <hr className='separator__hr' /> + <hr className='separator__hr'/> <div className='separator__text'> <FormattedDate value={this.props.post.create_at} @@ -84,7 +84,7 @@ export default class SearchResultsItem extends React.Component { </div> <div> <ul className='post__header'> - <li className='col__name'><strong><UserProfile userId={this.props.post.user_id} /></strong></li> + <li className='col__name'><strong><UserProfile userId={this.props.post.user_id}/></strong></li> <li className='col'> <time className='search-item-time'> <FormattedDate diff --git a/web/react/components/setting_item_max.jsx b/web/react/components/setting_item_max.jsx index ac750614b..70f011d26 100644 --- a/web/react/components/setting_item_max.jsx +++ b/web/react/components/setting_item_max.jsx @@ -61,7 +61,7 @@ export default class SettingItemMax extends React.Component { {extraInfo} </li> <li className='setting-list-item'> - <hr /> + <hr/> {serverError} {clientError} {submit} diff --git a/web/react/components/settings_sidebar.jsx b/web/react/components/settings_sidebar.jsx index 271ea9a41..90c0e8435 100644 --- a/web/react/components/settings_sidebar.jsx +++ b/web/react/components/settings_sidebar.jsx @@ -40,7 +40,7 @@ export default class SettingsSidebar extends React.Component { href='#' onClick={this.handleClick.bind(null, tab)} > - <i className={tab.icon} /> + <i className={tab.icon}/> {tab.uiName} </a> </li> diff --git a/web/react/components/sidebar_right.jsx b/web/react/components/sidebar_right.jsx index ee247265d..b81c0d099 100644 --- a/web/react/components/sidebar_right.jsx +++ b/web/react/components/sidebar_right.jsx @@ -87,6 +87,7 @@ export default class SidebarRight extends React.Component { $('.sidebar__overlay').remove(); }); }, 500);*/ + return null; } componentDidUpdate() { this.doStrangeThings(); @@ -115,7 +116,7 @@ export default class SidebarRight extends React.Component { var content = ''; if (this.state.search_visible) { - content = <SearchResults isMentionSearch={this.state.is_mention_search} />; + content = <SearchResults isMentionSearch={this.state.is_mention_search}/>; } else if (this.state.post_right_visible) { content = ( <RhsThread diff --git a/web/react/components/signup_team.jsx b/web/react/components/signup_team.jsx index 098e9f65a..5e8ae117d 100644 --- a/web/react/components/signup_team.jsx +++ b/web/react/components/signup_team.jsx @@ -130,21 +130,21 @@ export default class TeamSignUp extends React.Component { return ( <div> {teamListing} - <EmailSignUpPage /> + <EmailSignUpPage/> </div> ); } else if (this.state.page === 'gitlab') { return ( <div> {teamListing} - <SSOSignupPage service={Constants.GITLAB_SERVICE} /> + <SSOSignupPage service={Constants.GITLAB_SERVICE}/> </div> ); } else if (this.state.page === 'google') { return ( <div> {teamListing} - <SSOSignupPage service={Constants.GOOGLE_SERVICE} /> + <SSOSignupPage service={Constants.GOOGLE_SERVICE}/> </div> ); } else if (this.state.page === 'none') { @@ -157,6 +157,8 @@ export default class TeamSignUp extends React.Component { </div> ); } + + return null; } } diff --git a/web/react/components/signup_team_confirm.jsx b/web/react/components/signup_team_confirm.jsx index de83285db..290d8e503 100644 --- a/web/react/components/signup_team_confirm.jsx +++ b/web/react/components/signup_team_confirm.jsx @@ -4,10 +4,6 @@ import {FormattedMessage, FormattedHTMLMessage} from 'mm-intl'; export default class SignupTeamConfirm extends React.Component { - constructor(props) { - super(props); - } - render() { return ( <div className='signup-team__container'> diff --git a/web/react/components/signup_user_complete.jsx b/web/react/components/signup_user_complete.jsx index b770a2a2c..740a7b166 100644 --- a/web/react/components/signup_user_complete.jsx +++ b/web/react/components/signup_user_complete.jsx @@ -254,7 +254,7 @@ class SignupUserComplete extends React.Component { key='gitlab' href={'/' + this.props.teamName + '/signup/gitlab' + window.location.search} > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='signup_user_completed.gitlab' @@ -272,7 +272,7 @@ class SignupUserComplete extends React.Component { key='google' href={'/' + this.props.teamName + '/signup/google' + window.location.search} > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='signup_user_completed.google' diff --git a/web/react/components/suggestion/at_mention_provider.jsx b/web/react/components/suggestion/at_mention_provider.jsx index 50231ad15..c4e1314c9 100644 --- a/web/react/components/suggestion/at_mention_provider.jsx +++ b/web/react/components/suggestion/at_mention_provider.jsx @@ -24,7 +24,7 @@ class AtMentionSuggestion extends React.Component { defaultMessage='Notifies everyone in the team' /> ); - icon = <i className='mention-img fa fa-users fa-2x' />; + icon = <i className='mention-img fa fa-users fa-2x'/>; } else if (item.username === 'channel') { username = 'channel'; description = ( @@ -33,7 +33,7 @@ class AtMentionSuggestion extends React.Component { defaultMessage='Notifies everyone in the channel' /> ); - icon = <i className='mention-img fa fa-users fa-2x' />; + icon = <i className='mention-img fa fa-users fa-2x'/>; } else { username = item.username; description = Utils.getFullName(item); diff --git a/web/react/components/suggestion/suggestion_box.jsx b/web/react/components/suggestion/suggestion_box.jsx index 57a33c24a..ea9f835eb 100644 --- a/web/react/components/suggestion/suggestion_box.jsx +++ b/web/react/components/suggestion/suggestion_box.jsx @@ -140,7 +140,7 @@ export default class SuggestionBox extends React.Component { return ( <div> {textbox} - <SuggestionListComponent suggestionId={this.suggestionId} /> + <SuggestionListComponent suggestionId={this.suggestionId}/> </div> ); } diff --git a/web/react/components/team_export_tab.jsx b/web/react/components/team_export_tab.jsx index 8330637d8..12743d9e3 100644 --- a/web/react/components/team_export_tab.jsx +++ b/web/react/components/team_export_tab.jsx @@ -36,7 +36,7 @@ export default class TeamExportTab extends React.Component { case 'in-progress': messageSection = ( <p className='confirm-import alert alert-warning'> - <i className='fa fa-spinner fa-pulse' /> + <i className='fa fa-spinner fa-pulse'/> <FormattedMessage id='team_export_tab.exporting' defaultMessage=' Exporting...' @@ -47,7 +47,7 @@ export default class TeamExportTab extends React.Component { case 'ready': messageSection = ( <p className='confirm-import alert alert-success'> - <i className='fa fa-check' /> + <i className='fa fa-check'/> <FormattedMessage id='team_export_tab.ready' defaultMessage=' Ready for ' @@ -67,7 +67,7 @@ export default class TeamExportTab extends React.Component { case 'failure': messageSection = ( <p className='confirm-import alert alert-warning'> - <i className='fa fa-warning' /> + <i className='fa fa-warning'/> <FormattedMessage id='team_export_tab.unable' defaultMessage=' Unable to export: {error}' diff --git a/web/react/components/team_import_tab.jsx b/web/react/components/team_import_tab.jsx index adf990672..828e9fc4e 100644 --- a/web/react/components/team_import_tab.jsx +++ b/web/react/components/team_import_tab.jsx @@ -79,7 +79,7 @@ class TeamImportTab extends React.Component { case 'done': messageSection = ( <p className='confirm-import alert alert-success'> - <i className='fa fa-check' /> + <i className='fa fa-check'/> <FormattedMessage id='team_import_tab.successful' defaultMessage=' Import successful: ' @@ -99,7 +99,7 @@ class TeamImportTab extends React.Component { case 'fail': messageSection = ( <p className='confirm-import alert alert-warning'> - <i className='fa fa-warning' /> + <i className='fa fa-warning'/> <FormattedMessage id='team_import_tab.failure' defaultMessage=' Import failure: ' diff --git a/web/react/components/team_members_modal.jsx b/web/react/components/team_members_modal.jsx index 92adb6e2a..8ac435742 100644 --- a/web/react/components/team_members_modal.jsx +++ b/web/react/components/team_members_modal.jsx @@ -56,7 +56,7 @@ export default class TeamMembersModal extends React.Component { </Modal.Header> <Modal.Body ref='modalBody'> <div className='team-member-list'> - <MemberListTeam /> + <MemberListTeam/> </div> </Modal.Body> <Modal.Footer> diff --git a/web/react/components/team_settings.jsx b/web/react/components/team_settings.jsx index bbcedb5dd..e3207d573 100644 --- a/web/react/components/team_settings.jsx +++ b/web/react/components/team_settings.jsx @@ -55,7 +55,7 @@ export default class TeamSettings extends React.Component { case 'export': result = ( <div> - <ExportTab /> + <ExportTab/> </div> ); break; diff --git a/web/react/components/team_signup_choose_auth.jsx b/web/react/components/team_signup_choose_auth.jsx index 2dc67e92e..8c98c5538 100644 --- a/web/react/components/team_signup_choose_auth.jsx +++ b/web/react/components/team_signup_choose_auth.jsx @@ -23,7 +23,7 @@ export default class ChooseAuthPage extends React.Component { }.bind(this) } > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='choose_auth_page.gitlabCreate' @@ -47,7 +47,7 @@ export default class ChooseAuthPage extends React.Component { } } > - <span className='icon' /> + <span className='icon'/> <span> <FormattedMessage id='choose_auth_page.googleCreate' @@ -71,7 +71,7 @@ export default class ChooseAuthPage extends React.Component { }.bind(this) } > - <span className='fa fa-envelope' /> + <span className='fa fa-envelope'/> <span> <FormattedMessage id='choose_auth_page.emailCreate' diff --git a/web/react/components/team_signup_send_invites_page.jsx b/web/react/components/team_signup_send_invites_page.jsx index 343db13e8..55cfe5114 100644 --- a/web/react/components/team_signup_send_invites_page.jsx +++ b/web/react/components/team_signup_send_invites_page.jsx @@ -183,7 +183,7 @@ export default class TeamSignupSendInvitesPage extends React.Component { <FormattedMessage id='team_signup_send_invites.next' defaultMessage='Next' - /><i className='glyphicon glyphicon-chevron-right' /> + /><i className='glyphicon glyphicon-chevron-right'/> </button> </div> </form> diff --git a/web/react/components/team_signup_welcome_page.jsx b/web/react/components/team_signup_welcome_page.jsx index 18951be72..9939c3ffd 100644 --- a/web/react/components/team_signup_welcome_page.jsx +++ b/web/react/components/team_signup_welcome_page.jsx @@ -150,7 +150,7 @@ class TeamSignupWelcomePage extends React.Component { id='team_signup_welcome.confirm' defaultMessage='Please confirm your email address:' /> - <br /> + <br/> <div className='inner__content'> <div className='block--gray'>{this.props.state.team.email}</div> </div> @@ -176,7 +176,7 @@ class TeamSignupWelcomePage extends React.Component { </button> {storageError} </div> - <hr /> + <hr/> <div className={emailDivContainerClass}> <div className={emailDivClass}> <div className='row'> diff --git a/web/react/components/time_since.jsx b/web/react/components/time_since.jsx index 1560d2469..d5891cc57 100644 --- a/web/react/components/time_since.jsx +++ b/web/react/components/time_since.jsx @@ -10,9 +10,6 @@ var Tooltip = ReactBootstrap.Tooltip; var OverlayTrigger = ReactBootstrap.OverlayTrigger; export default class TimeSince extends React.Component { - constructor(props) { - super(props); - } componentDidMount() { this.intervalId = setInterval(() => { this.forceUpdate(); @@ -51,7 +48,7 @@ export default class TimeSince extends React.Component { overlay={tooltip} > <time className='post__time'> - <FormattedRelative value={this.props.eventTime} /> + <FormattedRelative value={this.props.eventTime}/> </time> </OverlayTrigger> ); diff --git a/web/react/components/toggle_modal_button.jsx b/web/react/components/toggle_modal_button.jsx index ce8ff3f60..10f9a4736 100644 --- a/web/react/components/toggle_modal_button.jsx +++ b/web/react/components/toggle_modal_button.jsx @@ -22,7 +22,7 @@ export default class ModalToggleButton extends React.Component { } render() { - const {children, dialogType, dialogProps, onClick, ...props} = this.props; // eslint-disable-line no-redeclare + const {children, dialogType, dialogProps, onClick, ...props} = this.props; // eslint-disable-line no-use-before-define // allow callers to provide an onClick which will be called before the modal is shown let clickHandler = this.show; diff --git a/web/react/components/tutorial/tutorial_intro_screens.jsx b/web/react/components/tutorial/tutorial_intro_screens.jsx index 78cfb7b60..2bacdeb28 100644 --- a/web/react/components/tutorial/tutorial_intro_screens.jsx +++ b/web/react/components/tutorial/tutorial_intro_screens.jsx @@ -58,6 +58,7 @@ export default class TutorialIntroScreens extends React.Component { case 2: return this.createScreenThree(); } + return null; } createScreenOne() { const circles = this.createCircles(); diff --git a/web/react/components/unread_channel_indicator.jsx b/web/react/components/unread_channel_indicator.jsx index 509ac9e4d..f897cdea3 100644 --- a/web/react/components/unread_channel_indicator.jsx +++ b/web/react/components/unread_channel_indicator.jsx @@ -4,9 +4,6 @@ // Indicator for the left sidebar which indicate if there's unread posts in a channel that is not shown // because it is either above or below the screen export default class UnreadChannelIndicator extends React.Component { - constructor(props) { - super(props); - } render() { let displayValue = 'none'; if (this.props.show) { diff --git a/web/react/components/user_settings/user_settings_integrations.jsx b/web/react/components/user_settings/user_settings_integrations.jsx index 07d5230d1..e4f460a6d 100644 --- a/web/react/components/user_settings/user_settings_integrations.jsx +++ b/web/react/components/user_settings/user_settings_integrations.jsx @@ -57,7 +57,7 @@ class UserSettingsIntegrationsTab extends React.Component { if (global.window.mm_config.EnableIncomingWebhooks === 'true') { if (this.props.activeSection === 'incoming-hooks') { inputs.push( - <ManageIncomingHooks key='incoming-hook-ui' /> + <ManageIncomingHooks key='incoming-hook-ui'/> ); incomingHooksSection = ( @@ -88,7 +88,7 @@ class UserSettingsIntegrationsTab extends React.Component { if (global.window.mm_config.EnableOutgoingWebhooks === 'true') { if (this.props.activeSection === 'outgoing-hooks') { inputs.push( - <ManageOutgoingHooks key='outgoing-hook-ui' /> + <ManageOutgoingHooks key='outgoing-hook-ui'/> ); outgoingHooksSection = ( @@ -119,7 +119,7 @@ class UserSettingsIntegrationsTab extends React.Component { if (global.window.mm_config.EnableCommands === 'true') { if (this.props.activeSection === 'command-hooks') { inputs.push( - <ManageCommandHooks key='command-hook-ui' /> + <ManageCommandHooks key='command-hook-ui'/> ); commandHooksSection = ( diff --git a/web/react/components/user_settings/user_settings_modal.jsx b/web/react/components/user_settings/user_settings_modal.jsx index 5442f7ac4..80d03d88e 100644 --- a/web/react/components/user_settings/user_settings_modal.jsx +++ b/web/react/components/user_settings/user_settings_modal.jsx @@ -111,12 +111,13 @@ class UserSettingsModal extends React.Component { this.afterConfirm = () => this.handleHide(); this.showConfirmModal(); - return false; + return; } this.resetTheme(); this.deactivateTab(); this.props.onModalDismissed(); + return; } // called after the dialog is fully hidden and faded out @@ -295,7 +296,12 @@ class UserSettingsModal extends React.Component { closeModal={this.closeModal} collapseModal={this.collapseModal} setEnforceFocus={(enforceFocus) => this.setState({enforceFocus})} - setRequireConfirm={(requireConfirm) => this.requireConfirm = requireConfirm} + setRequireConfirm={ + (requireConfirm) => { + this.requireConfirm = requireConfirm; + return; + } + } /> </div> </div> diff --git a/web/react/components/user_settings/user_settings_notifications.jsx b/web/react/components/user_settings/user_settings_notifications.jsx index 786e53f10..ee9febb8e 100644 --- a/web/react/components/user_settings/user_settings_notifications.jsx +++ b/web/react/components/user_settings/user_settings_notifications.jsx @@ -445,7 +445,7 @@ class NotificationsTab extends React.Component { title={formatMessage(holders.desktopSounds)} describe={describe} updateSection={handleUpdateSoundSection} - disableOpen = {!this.state.soundNeeded} + disableOpen={!this.state.soundNeeded} /> ); } @@ -826,4 +826,4 @@ NotificationsTab.propTypes = { collapseModal: React.PropTypes.func.isRequired }; -export default injectIntl(NotificationsTab);
\ No newline at end of file +export default injectIntl(NotificationsTab); diff --git a/web/react/components/view_image.jsx b/web/react/components/view_image.jsx index 90885e495..713fbf80b 100644 --- a/web/react/components/view_image.jsx +++ b/web/react/components/view_image.jsx @@ -203,7 +203,9 @@ class ViewImageModal extends React.Component { window.open(serverData.public_link); } }, - () => {} + () => { + //Do Nothing on error + } ); } @@ -383,6 +385,11 @@ function LoadingImagePreview({progress, loading}) { ); } +LoadingImagePreview.propTypes = { + progress: React.PropTypes.number, + loading: React.PropTypes.string +}; + function ImagePreview({filename, fileUrl, fileInfo, maxHeight}) { let previewUrl; if (fileInfo.has_preview_image) { @@ -405,4 +412,11 @@ function ImagePreview({filename, fileUrl, fileInfo, maxHeight}) { ); } -export default injectIntl(ViewImageModal);
\ No newline at end of file +ImagePreview.propTypes = { + filename: React.PropTypes.string.isRequired, + fileUrl: React.PropTypes.string.isRequired, + fileInfo: React.PropTypes.object.isRequired, + maxHeight: React.PropTypes.number.isRequired +}; + +export default injectIntl(ViewImageModal); diff --git a/web/react/components/view_image_popover_bar.jsx b/web/react/components/view_image_popover_bar.jsx index 97671b845..819df76d8 100644 --- a/web/react/components/view_image_popover_bar.jsx +++ b/web/react/components/view_image_popover_bar.jsx @@ -4,9 +4,6 @@ import {FormattedMessage} from 'mm-intl'; export default class ViewImagePopoverBar extends React.Component { - constructor(props) { - super(props); - } render() { var publicLink = ''; if (global.window.mm_config.EnablePublicLink === 'true') { diff --git a/web/react/components/youtube_video.jsx b/web/react/components/youtube_video.jsx index bf3c43840..fae846afb 100644 --- a/web/react/components/youtube_video.jsx +++ b/web/react/components/youtube_video.jsx @@ -94,6 +94,7 @@ export default class YoutubeVideo extends React.Component { receivedYoutubeData: true, title: metadata.title }); + return null; } play() { |