summaryrefslogtreecommitdiffstats
path: root/web/react/components/popover_list_members.jsx
diff options
context:
space:
mode:
authorChristopher Speller <crspeller@gmail.com>2016-03-14 08:50:46 -0400
committerChristopher Speller <crspeller@gmail.com>2016-03-16 18:02:55 -0400
commit12896bd23eeba79884245c1c29fdc568cf21a7fa (patch)
tree4e7f83d3e2564b9b89d669e9f7905ff11768b11a /web/react/components/popover_list_members.jsx
parent29fe6a3d13c9c7aa490fffebbe5d1b5fdf1e3090 (diff)
downloadchat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.gz
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.tar.bz2
chat-12896bd23eeba79884245c1c29fdc568cf21a7fa.zip
Converting to Webpack. Stage 1.
Diffstat (limited to 'web/react/components/popover_list_members.jsx')
-rw-r--r--web/react/components/popover_list_members.jsx200
1 files changed, 0 insertions, 200 deletions
diff --git a/web/react/components/popover_list_members.jsx b/web/react/components/popover_list_members.jsx
deleted file mode 100644
index 8f6948ee4..000000000
--- a/web/react/components/popover_list_members.jsx
+++ /dev/null
@@ -1,200 +0,0 @@
-// Copyright (c) 2015 Mattermost, Inc. All Rights Reserved.
-// See License.txt for license information.
-
-import UserStore from '../stores/user_store.jsx';
-var Popover = ReactBootstrap.Popover;
-var Overlay = ReactBootstrap.Overlay;
-import * as Utils from '../utils/utils.jsx';
-import Constants from '../utils/constants.jsx';
-
-import ChannelStore from '../stores/channel_store.jsx';
-
-import {FormattedMessage} from 'mm-intl';
-
-export default class PopoverListMembers extends React.Component {
- constructor(props) {
- super(props);
-
- this.handleShowDirectChannel = this.handleShowDirectChannel.bind(this);
- this.closePopover = this.closePopover.bind(this);
- }
-
- componentWillMount() {
- this.setState({showPopover: false});
- }
-
- componentDidMount() {
- const originalLeave = $.fn.popover.Constructor.prototype.leave;
- $.fn.popover.Constructor.prototype.leave = function onLeave(obj) {
- let selfObj;
- if (obj instanceof this.constructor) {
- selfObj = obj;
- } else {
- selfObj = $(obj.currentTarget)[this.type](this.getDelegateOptions()).data(`bs.${this.type}`);
- }
- originalLeave.call(this, obj);
-
- if (obj.currentTarget && selfObj.$tip) {
- selfObj.$tip.one('mouseenter', function onMouseEnter() {
- clearTimeout(selfObj.timeout);
- selfObj.$tip.one('mouseleave', function onMouseLeave() {
- $.fn.popover.Constructor.prototype.leave.call(selfObj, selfObj);
- });
- });
- }
- };
- }
-
- componentDidUpdate() {
- $(ReactDOM.findDOMNode(this.refs.memebersPopover)).find('.popover-content').perfectScrollbar();
- }
-
- handleShowDirectChannel(teammate, e) {
- e.preventDefault();
-
- Utils.openDirectChannelToUser(
- teammate,
- (channel, channelAlreadyExisted) => {
- Utils.switchChannel(channel);
- if (channelAlreadyExisted) {
- this.closePopover();
- }
- },
- () => {
- this.closePopover();
- }
- );
- }
-
- closePopover() {
- this.setState({showPopover: false});
- }
-
- render() {
- const popoverHtml = [];
- const members = this.props.members;
- const teamMembers = UserStore.getProfilesUsernameMap();
- const currentUserId = UserStore.getCurrentId();
- const ch = ChannelStore.getCurrent();
-
- if (members && teamMembers) {
- members.sort((a, b) => {
- const aName = Utils.displayUsername(a.id);
- const bName = Utils.displayUsername(b.id);
-
- return aName.localeCompare(bName);
- });
-
- members.forEach((m, i) => {
- let button = '';
- if (currentUserId !== m.id && ch.type !== 'D') {
- button = (
- <a
- href='#'
- className='btn-message'
- onClick={(e) => this.handleShowDirectChannel(m, e)}
- >
- <FormattedMessage
- id='members_popover.msg'
- defaultMessage='Message'
- />
- </a>
- );
- }
-
- let name = '';
- if (teamMembers[m.username]) {
- name = Utils.displayUsername(teamMembers[m.username].id);
- }
-
- if (name) {
- popoverHtml.push(
- <div
- className='more-modal__row'
- key={'popover-member-' + i}
- >
-
- <img
- className='more-modal__image'
- width='26px'
- height='26px'
- src={`/api/v1/users/${m.id}/image?time=${m.update_at}`}
- />
- <div className='more-modal__details'>
- <div
- className='more-modal__name'
- >
- {name}
- </div>
- </div>
- <div
- className='more-modal__actions'
- >
- {button}
- </div>
- </div>
- );
- }
- });
- }
-
- let count = this.props.memberCount;
- let countText = '-';
-
- // fall back to checking the length of the member list if the count isn't set
- if (!count && members) {
- count = members.length;
- }
-
- if (count > Constants.MAX_CHANNEL_POPOVER_COUNT) {
- countText = Constants.MAX_CHANNEL_POPOVER_COUNT + '+';
- } else if (count > 0) {
- countText = count.toString();
- }
-
- const title = (
- <FormattedMessage
- id='members_popover.title'
- defaultMessage='Members'
- />
- );
- return (
- <div>
- <div
- id='member_popover'
- ref='member_popover_target'
- onClick={(e) => this.setState({popoverTarget: e.target, showPopover: !this.state.showPopover})}
- >
- <div>
- {countText}
- <span
- className='fa fa-user'
- aria-hidden='true'
- />
- </div>
- </div>
- <Overlay
- rootClose={true}
- onHide={this.closePopover}
- show={this.state.showPopover}
- target={() => this.state.popoverTarget}
- placement='bottom'
- >
- <Popover
- ref='memebersPopover'
- title={title}
- id='member-list-popover'
- >
- <div className='more-modal__list'>{popoverHtml}</div>
- </Popover>
- </Overlay>
- </div>
- );
- }
-}
-
-PopoverListMembers.propTypes = {
- members: React.PropTypes.array.isRequired,
- memberCount: React.PropTypes.number,
- channelId: React.PropTypes.string.isRequired
-};