Chat
Real-time messaging with typing indicators, attachments, replies, and message editing. Press Enter to send on desktop; on mobile pressing Enter inserts a new line (use the Send button to send).
Overview
The chat feature provides one-to-one real-time messaging between users. Messages support plain text, images, video, audio, and other files. Conversations are updated live using WebSockets and the UI shows typing indicators and online/offline presence.
Chat UI: composer, conversation list, and message actions.
Sending messages
- Desktop: Press Enter to send a message. Use Shift+Enter to insert a newline while composing.
- Mobile / Touch devices: Pressing Enter inserts a newline (this mirrors pressing Shift+Enter on desktop). Use the Send button (the paper-plane icon) to send the message.
Message send flow:
- Type your message in the input box.
- Attach files (optional) using the paperclip button.
- Press Send (or Enter on desktop) to send. Messages are queued and sent asynchronously.
Notes:
- Messages can be edited within a short time window (a few minutes) after sending.
- If you attach files, the client validates file size and limits the number of attachments.
Attachments
You can attach images, video, audio, and documents using the paperclip icon.
- Maximum per-file size: 3MB (client-side enforced).
- Maximum files per message: 10.
- Supported types include common image/video/audio formats and documents (.pdf, .docx, .xlsx, .txt).
When attachments are selected, a preview area appears above the input showing thumbnails or file info. You can remove attachments before sending.
Replying & Editing
- Reply to a message: click the reply icon on a message to attach a small preview above the composer. The reply will reference the original message.
- Edit a message: If a message is editable (displayed with an edit icon), click Edit to load the text into the composer. Save the edit by pressing the confirmation icon.
Notes:
- Edited messages are marked as "edited" in the chat.
- Messages are only editable for a short period after sending.
Mobile behavior
To make typing on phones and tablets easier, the Enter key behaves differently on touch devices:
- On mobile/touch devices pressing Enter inserts a newline so you can write multi-line messages without sending prematurely.
- To send from mobile, tap the Send button (paper-plane icon) located next to the input.
- Shift+Enter always inserts a newline on all platforms.
This behavior uses device heuristics (user agent, pointer and touch capabilities) to detect mobile/touch environments.
Permissions
| Action | Permission |
|---|---|
| View conversations | chat.conversation.viewAny |
| Start a conversation | chat.conversation.create |
| Send messages | chat.message.send |
| Edit messages | chat.message.edit |
| Delete messages | chat.message.delete |
Best practices
- Use the Send button on mobile to avoid accidental sends.
- Keep messages concise. Use attachments for large content.
- Preview images before sending.
Troubleshooting
| Issue | Fix |
|---|---|
| Enter sends on mobile | Use the Send button. If Enter still sends, check your device keyboard settings or report the issue to support. |
| Attachments not uploading | Check file size (< 3MB) and type. Try a different browser. |
| Typing indicator not showing | Ensure you are connected to the internet and WebSocket connection is active. |
Related
Last updated: 2025-12-28