owncast/web/stories/Chat.stories.mdx
2022-05-16 22:18:07 -07:00

76 lines
No EOL
1.9 KiB
Text

import { Meta } from '@storybook/addon-docs';
import { Typography } from 'antd';
import UserChatMessage from '../components/chat/ChatUserMessage';
import { ChatMessage } from '../interfaces/chat-message.model';
<Meta title="Owncast/Documentation/Chat" />
<Typography.Title style={{color: 'var(--primary-color)'}}>Owncast Chat</Typography.Title>
The Owncast chat is a websocket service that is authenticated with an access token.
The chat user interface has a handful of different states.
# App states
## Offline (stream is not live)
- The entire chat UI is hidden.
## Online (stream is live)
- The chat interface is visible.
### Online + chat is disconnected
- Show a loading state within the chat component.
- Disable the text input box.
## Banned from chat
- The entire chat UI is hidden.
## Stream ended
- Chat is visible for the next 5 minutes to allow viewers to say goodbye.
- Also allows for chat to stay active in case the streamer wants to quickly
restart their stream or there's a network blip.
## Chat Disconnected
If chat server is not available (websocket disconnects/not available for some reason)
then the chat input box should become disabled and placeholder should say chat is not availble.
# Message types
## User chat message
The message that is displayed when a chat user sends a message.
## System message
A message sent from the server. Is commonly used for
- Welcome message.
- An external script or integration sending a message on behalf of the server.
## Action message
A message saying an action has taken place. Is commonly used for
- User joined.
- User was banned.
- User changed name.
- Stream is starting.
- Stream is ending.
- An external script or integration sending an action.
## Federated action message
A message stating that somebody on the Fediverse performed an action.
It is used for:
- User "liked" that the steam went live.
- User followed the instance.
- User shared the instance to their followers.