0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-07 13:19:19 +08:00
discourse/plugins/chat/spec
Kris dd2c5ba0f8
UX: improve livestream chat messaging (#41750)
This does a handful of things to improve the livestream chat experience:

1. RSVP prompt replaces the default join button. 

A new chat-channel-preview-card-content plugin outlet in core chat lets
the calendar plugin's livestream-rsvp connector fill the redesigned
preview card's content slots. For users who can RSVP, it swaps the
default join button for a going button for the event.
2. Pinned reference message linking back to the event topic. When a
livestream channel is created, a system message is posted and pinned,
and its id is stored in a new `reference_message_id` column. It's hidden
via CSS when the chat is embedded in that same topic because it would be
redundant.
3. Access control for private events. `chat_channel_id` is only
serialized to users who can access the event's chat (invitees/invited
groups, or admins)
4. If the channel is already open and expanded in the chat drawer, the
embedded chat (and the livestream page layout) are suppressed.
5. Livestream channels are created with the spiral calendar emoji 🗓️ as
their icon.

I also converted core chat's preview card from viewport media queries to
container queries so its layout responds to the width of the chat column
it's rendered in rather than the viewport.

With livestream sidebar
<img width="2962" height="1726" alt="image"
src="https://github.com/user-attachments/assets/71dc3d3f-35e5-4a0d-9103-92a03d4bb08e"
/>

Isolated chat when you're not in the livestream topic 
<img width="2560" height="1726" alt="image"
src="https://github.com/user-attachments/assets/51cef0b8-85b4-4be8-a4f3-bf669f4be4fb"
/>

---------

Co-authored-by: Martin Brennan <martin@discourse.org>
2026-07-21 11:07:31 +10:00
..
components/chat FIX: Don't auto-remove chat members from logged_in_users group (#40543) 2026-06-03 18:15:32 +02:00
db/post_migrate FIX: Duplicate notifications when mentioned in chat (#39670) 2026-04-30 14:52:39 -03:00
fabricators FEATURE: Pin chat messages (#37985) 2026-02-23 22:00:16 +01:00
integration FEATURE: Add enable_discourse_workflows upcoming change (#41541) 2026-07-13 10:48:37 +10:00
jobs FEATURE: Restore web push quick reply for chat messages (#39614) 2026-04-29 12:36:03 -03:00
lib UX: Minor chat browse improvements (#41793) 2026-07-20 09:13:19 +10:00
mailers DEV: bump simple email subject status to stable (#41285) 2026-06-30 18:18:57 +04:00
models A11Y: live announcements and optional sounds for chat messages (#41213) 2026-07-02 12:48:58 -04:00
queries/chat Revert "FIX: Existing DM sends bypass direct-message group restrictions (#40405)" (#40561) 2026-06-04 15:00:45 +08:00
requests SECURITY: Enforce chat message length before cooking it (#41725) 2026-07-16 11:10:06 +08:00
serializer UX: improve livestream chat messaging (#41750) 2026-07-21 11:07:31 +10:00
services SECURITY: Enforce chat message length before cooking it (#41725) 2026-07-16 11:10:06 +08:00
support FEATURE: Pin chat messages (#37985) 2026-02-23 22:00:16 +01:00
system FIX: Handle a member disabling chat in their preferences (#41805) 2026-07-17 16:21:12 +02:00
validators
plugin_helper.rb DEV: Enable some minor rubocop rules (#40094) 2026-05-19 15:29:38 +02:00
plugin_spec.rb FIX: show chat DM button when personal messages are restricted (#37920) 2026-02-19 12:37:25 +01:00