Chat popup (#3098)

* add pop out chat button

* add button to close chat popup

* chat is hidden on main interface when a popup chat is open

* NameChangeEvent renames clients with the given id

if you have two or more owncast windows (or pop-out chats) open, changing your
name in 1 client is reflected in all clients.

* replace isChatVisible booleans with chatState enum

* update stories to use ChatState

* fix build tests

---------

Co-authored-by: janWilejan <>
This commit is contained in:
janWilejan
2023-06-26 16:00:27 +00:00
committed by GitHub
parent fca85a4a42
commit c563742856
6 changed files with 101 additions and 33 deletions

View File

@@ -1,5 +1,18 @@
import { ChatEvent } from '../../../interfaces/socket-events';
import { NameChangeEvent } from '../../../interfaces/socket-events';
import { CurrentUser } from '../../../interfaces/current-user';
export function handleNameChangeEvent(message: ChatEvent, setChatMessages) {
export function handleNameChangeEvent(
message: NameChangeEvent,
setChatMessages,
setCurrentUser: (_: (_: CurrentUser) => CurrentUser) => void,
) {
setCurrentUser(currentUser =>
currentUser.id === message.user.id
? {
...currentUser,
displayName: message.user.displayName,
}
: currentUser,
);
setChatMessages(currentState => [...currentState, message]);
}