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 (
no server message',
}}
>Server Message
Server Message
Server Message