|
|
@ -2,10 +2,10 @@ import React, { PropTypes } from "react"; |
|
|
import ImmutablePropTypes from "react-immutable-proptypes"; |
|
|
import ImmutablePropTypes from "react-immutable-proptypes"; |
|
|
|
|
|
|
|
|
import RoomChatForm from "../components/RoomChatForm"; |
|
|
import RoomChatForm from "../components/RoomChatForm"; |
|
|
|
|
|
import RoomChatHeader from "../components/RoomChatHeader"; |
|
|
import RoomChatMessageList from "../components/RoomChatMessageList"; |
|
|
import RoomChatMessageList from "../components/RoomChatMessageList"; |
|
|
|
|
|
|
|
|
const ID = "room-chat"; |
|
|
const ID = "room-chat"; |
|
|
const ID_HEADER = "room-chat-header"; |
|
|
|
|
|
|
|
|
|
|
|
class RoomChat extends React.Component { |
|
|
class RoomChat extends React.Component { |
|
|
constructor(props) { |
|
|
constructor(props) { |
|
|
@ -27,39 +27,34 @@ class RoomChat extends React.Component { |
|
|
} |
|
|
} |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
render_only_header(string) { |
|
|
|
|
|
return ( |
|
|
|
|
|
<div id={ID}> |
|
|
|
|
|
<div id={ID_HEADER}> |
|
|
|
|
|
{string} |
|
|
|
|
|
</div> |
|
|
|
|
|
</div> |
|
|
|
|
|
); |
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
render() { |
|
|
render() { |
|
|
const { login_user_name, name, room, roomActions } = this.props; |
|
|
const { login_user_name, name, room, roomActions } = this.props; |
|
|
|
|
|
|
|
|
// If no room is selected, just tell the user to select one.
|
|
|
// If no room is selected, just tell the user to select one.
|
|
|
if (!name || !room) { |
|
|
if (!name || !room) { |
|
|
return this.render_only_header("Select a room"); |
|
|
|
|
|
|
|
|
return <div id={ID}>Select a room</div>; |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
switch (room.membership) { |
|
|
|
|
|
case "NonMember": |
|
|
|
|
|
return this.render_only_header(`Not a member of ${name}`); |
|
|
|
|
|
|
|
|
|
|
|
case "Joining": |
|
|
|
|
|
return this.render_only_header(`Joining ${name}`); |
|
|
|
|
|
|
|
|
|
|
|
case "Leaving": |
|
|
|
|
|
return this.render_only_header(`Leaving ${name}`); |
|
|
|
|
|
|
|
|
if (room.membership != "Member") { |
|
|
|
|
|
return ( |
|
|
|
|
|
<div id={ID}> |
|
|
|
|
|
<RoomChatHeader |
|
|
|
|
|
room_name={name} |
|
|
|
|
|
membership={room.membership} |
|
|
|
|
|
roomActions={roomActions} |
|
|
|
|
|
/> |
|
|
|
|
|
</div> |
|
|
|
|
|
); |
|
|
} |
|
|
} |
|
|
|
|
|
|
|
|
// room.membership == "Member"
|
|
|
// room.membership == "Member"
|
|
|
return ( |
|
|
return ( |
|
|
<div id="room-chat"> |
|
|
|
|
|
<div id="room-chat-header">{name}</div> |
|
|
|
|
|
|
|
|
<div id={ID}> |
|
|
|
|
|
<RoomChatHeader |
|
|
|
|
|
room_name={name} |
|
|
|
|
|
membership={room.membership} |
|
|
|
|
|
roomActions={roomActions} |
|
|
|
|
|
/> |
|
|
<RoomChatMessageList |
|
|
<RoomChatMessageList |
|
|
login_user_name={login_user_name} |
|
|
login_user_name={login_user_name} |
|
|
messages={room.messages} |
|
|
messages={room.messages} |
|
|
|