Add chat join messages

This commit is contained in:
Gabe Kangas 2022-07-14 21:05:34 -07:00
parent 9a2a43d916
commit 2c8621c873
No known key found for this signature in database
GPG Key ID: 9A56337728BC81EA
2 changed files with 17 additions and 1 deletions

View File

@ -11,6 +11,7 @@ import s from './ChatContainer.module.scss';
import { ChatMessage } from '../../../interfaces/chat-message.model';
import { ChatTextField, ChatUserMessage } from '..';
import ChatModeratorNotification from '../ChatModeratorNotification/ChatModeratorNotification';
import ChatActionMessage from '../ChatAction/ChatActionMessage';
interface Props {
messages: ChatMessage[];
@ -48,6 +49,17 @@ export default function ChatContainer(props: Props) {
);
};
const getUserJoinedMessage = (message: ChatMessage) => {
const { user } = message;
const { displayName, displayColor } = user;
const color = `var(--theme-user-colors-${displayColor})`;
return (
<ChatActionMessage
body={`<span style="color: ${color}">${displayName}</span> joined the chat.`}
/>
);
};
const getConnectedInfoMessage = (message: ConnectedClientInfoEvent) => {
const modStatusUpdate = checkIsModerator(message);
if (!modStatusUpdate) {
@ -78,6 +90,8 @@ export default function ChatContainer(props: Props) {
return getNameChangeViewForMessage(message as NameChangeEvent);
case MessageType.CONNECTED_USER_INFO:
return getConnectedInfoMessage(message);
case MessageType.USER_JOINED:
return getUserJoinedMessage(message as ChatMessage);
default:
return null;

View File

@ -262,11 +262,13 @@ export function ClientConfigStore() {
break;
case MessageType.CHAT:
setChatMessages(currentState => [...currentState, message as ChatEvent]);
break;
case MessageType.NAME_CHANGE:
handleNameChangeEvent(message as ChatEvent, chatMessages, setChatMessages);
break;
case MessageType.USER_JOINED:
setChatMessages(currentState => [...currentState, message as ChatEvent]);
break;
default:
console.error('Unknown socket message type: ', message.type);
}