import React, { Component } from 'react' import { connect } from 'react-redux' import { Link, Prompt } from 'react-router-dom' import * as UIActions from '../../actions/ui' import { msgToReal } from '../../utils' import * as Actions from './actions' import Category from './Category' import './RolePicker.sass' const mapState = ({ rolePicker, servers }, ownProps) => { return { data: rolePicker, server: servers.get(ownProps.match.params.server), } } @connect(mapState) class RolePicker extends Component { componentWillMount() { const { dispatch, match: { params: { server }, }, } = this.props dispatch(Actions.setup(server)) } componentWillReceiveProps(nextProps) { if (this.props.match.params.server !== nextProps.match.params.server) { const { dispatch } = this.props dispatch( UIActions.fadeOut(() => dispatch(Actions.setup(nextProps.match.params.server))) ) } } get serverId() { return this.props.server.get('id') } isSelected = id => { return this.props.data.getIn(['rolesSelected', id]) } get rolesHaveChanged() { const { data } = this.props return !data.get('rolesSelected').equals(data.get('originalRolesSelected')) } editServerMessage = e => { const { dispatch } = this.props dispatch(Actions.editServerMessage(this.serverId, e.target.value)) } saveServerMessage = e => { const { dispatch } = this.props dispatch(Actions.saveServerMessage(this.serverId)) } openMessageEditor = () => { const { dispatch } = this.props dispatch(Actions.openMessageEditor(this.serverId)) } closeMessageEditor = () => { const { dispatch } = this.props dispatch(Actions.closeMessageEditor) } renderServerMessage(server) { const isEditing = this.props.data.get('isEditingMessage') const roleManager = server.getIn(['perms', 'canManageRoles']) const msg = server.get('message') const msgBuffer = this.props.data.get('messageBuffer') console.log(msg, roleManager, isEditing, this.props.data.toJS()) if (!roleManager && msg !== '') { return (

Server Message

) } if (roleManager && !isEditing) { return (

Server Message

no server message', }} >

) } if (roleManager && isEditing) { return (

Server Message