You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
52 lines
1.9 KiB
52 lines
1.9 KiB
import { useRecoilValue } from 'recoil'; |
|
import { ChatMessage } from '../../../../interfaces/chat-message.model'; |
|
import { ChatContainer } from '../../../../components/chat/ChatContainer/ChatContainer'; |
|
import { |
|
ClientConfigStore, |
|
currentUserAtom, |
|
visibleChatMessagesSelector, |
|
clientConfigStateAtom, |
|
appStateAtom, |
|
serverStatusState, |
|
isChatAvailableSelector, |
|
} from '../../../../components/stores/ClientConfigStore'; |
|
import Header from '../../../../components/ui/Header/Header'; |
|
import { ClientConfig } from '../../../../interfaces/client-config.model'; |
|
import { AppStateOptions } from '../../../../components/stores/application-state'; |
|
import { ServerStatus } from '../../../../interfaces/server-status.model'; |
|
|
|
export default function ReadWriteChatEmbed() { |
|
const currentUser = useRecoilValue(currentUserAtom); |
|
const messages = useRecoilValue<ChatMessage[]>(visibleChatMessagesSelector); |
|
const clientConfig = useRecoilValue<ClientConfig>(clientConfigStateAtom); |
|
const clientStatus = useRecoilValue<ServerStatus>(serverStatusState); |
|
|
|
const appState = useRecoilValue<AppStateOptions>(appStateAtom); |
|
const isChatAvailable = useRecoilValue(isChatAvailableSelector); |
|
|
|
const { name, chatDisabled } = clientConfig; |
|
const { videoAvailable } = appState; |
|
const { streamTitle, online } = clientStatus; |
|
|
|
const headerText = online ? streamTitle || name : name; |
|
|
|
return ( |
|
<div> |
|
<ClientConfigStore /> |
|
<Header name={headerText} chatAvailable chatDisabled={chatDisabled} online={videoAvailable} /> |
|
{currentUser && ( |
|
<div id="chat-container"> |
|
<ChatContainer |
|
messages={messages} |
|
usernameToHighlight={currentUser.displayName} |
|
chatUserId={currentUser.id} |
|
isModerator={currentUser.isModerator} |
|
showInput |
|
height="80vh" |
|
chatAvailable={isChatAvailable} |
|
/> |
|
</div> |
|
)} |
|
</div> |
|
); |
|
}
|
|
|