From 12896bd23eeba79884245c1c29fdc568cf21a7fa Mon Sep 17 00:00:00 2001 From: Christopher Speller Date: Mon, 14 Mar 2016 08:50:46 -0400 Subject: Converting to Webpack. Stage 1. --- web/react/components/channel_members_modal.jsx | 223 ------------------------- 1 file changed, 223 deletions(-) delete mode 100644 web/react/components/channel_members_modal.jsx (limited to 'web/react/components/channel_members_modal.jsx') diff --git a/web/react/components/channel_members_modal.jsx b/web/react/components/channel_members_modal.jsx deleted file mode 100644 index dc8e3baaf..000000000 --- a/web/react/components/channel_members_modal.jsx +++ /dev/null @@ -1,223 +0,0 @@ -// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved. -// See License.txt for license information. - -import FilteredUserList from './filtered_user_list.jsx'; -import LoadingScreen from './loading_screen.jsx'; -import ChannelInviteModal from './channel_invite_modal.jsx'; - -import UserStore from '../stores/user_store.jsx'; -import ChannelStore from '../stores/channel_store.jsx'; - -import * as AsyncClient from '../utils/async_client.jsx'; -import * as Client from '../utils/client.jsx'; -import * as Utils from '../utils/utils.jsx'; - -import {FormattedMessage} from 'mm-intl'; - -const Modal = ReactBootstrap.Modal; - -export default class ChannelMembersModal extends React.Component { - constructor(props) { - super(props); - - this.getStateFromStores = this.getStateFromStores.bind(this); - this.onChange = this.onChange.bind(this); - this.handleRemove = this.handleRemove.bind(this); - - this.createRemoveMemberButton = this.createRemoveMemberButton.bind(this); - - // the rest of the state gets populated when the modal is shown - this.state = { - showInviteModal: false - }; - } - shouldComponentUpdate(nextProps, nextState) { - if (!Utils.areObjectsEqual(this.props, nextProps)) { - return true; - } - - if (!Utils.areObjectsEqual(this.state, nextState)) { - return true; - } - - return false; - } - getStateFromStores() { - const extraInfo = ChannelStore.getCurrentExtraInfo(); - const profiles = UserStore.getActiveOnlyProfiles(); - - if (extraInfo.member_count !== extraInfo.members.length) { - AsyncClient.getChannelExtraInfo(this.props.channel.id, -1); - - return { - loading: true - }; - } - - const memberList = extraInfo.members.map((member) => { - return profiles[member.id]; - }); - - function compareByUsername(a, b) { - if (a.username < b.username) { - return -1; - } else if (a.username > b.username) { - return 1; - } - - return 0; - } - - memberList.sort(compareByUsername); - - return { - memberList, - loading: false - }; - } - componentWillReceiveProps(nextProps) { - if (!this.props.show && nextProps.show) { - ChannelStore.addExtraInfoChangeListener(this.onChange); - ChannelStore.addChangeListener(this.onChange); - - this.onChange(); - } else if (this.props.show && !nextProps.show) { - ChannelStore.removeExtraInfoChangeListener(this.onChange); - ChannelStore.removeChangeListener(this.onChange); - } - } - onChange() { - const newState = this.getStateFromStores(); - if (!Utils.areObjectsEqual(this.state, newState)) { - this.setState(newState); - } - } - handleRemove(user) { - const userId = user.id; - - const data = {}; - data.user_id = userId; - - Client.removeChannelMember( - ChannelStore.getCurrentId(), - data, - () => { - const memberList = this.state.memberList.slice(); - for (let i = 0; i < memberList.length; i++) { - if (userId === memberList[i].id) { - memberList.splice(i, 1); - break; - } - } - - this.setState({memberList}); - AsyncClient.getChannelExtraInfo(); - }, - (err) => { - this.setState({inviteError: err.message}); - } - ); - } - createRemoveMemberButton({user}) { - if (user.id === UserStore.getCurrentId()) { - return null; - } - - return ( - - ); - } - render() { - let content; - if (this.state.loading) { - content = (); - } else { - let maxHeight = 1000; - if (Utils.windowHeight() <= 1200) { - maxHeight = Utils.windowHeight() - 300; - } - - content = ( - - ); - } - - return ( -
- - - - {this.props.channel.display_name} - - - { - this.setState({showInviteModal: true}); - this.props.onModalDismissed(); - }} - > - - - - - {content} - - - - - - this.setState({showInviteModal: false})} - channel={this.props.channel} - /> -
- ); - } -} - -ChannelMembersModal.defaultProps = { - show: false -}; - -ChannelMembersModal.propTypes = { - show: React.PropTypes.bool.isRequired, - onModalDismissed: React.PropTypes.func.isRequired, - channel: React.PropTypes.object.isRequired -}; -- cgit v1.2.3-1-g7c22