0
0
Fork 0
mirror of https://github.com/discourse/discourse.git synced 2026-08-11 02:48:54 +08:00
discourse/plugins
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
..
automation I18N: Update translations (#41653) 2026-07-13 17:38:52 +02:00
chat UX: improve livestream chat messaging (#41750) 2026-07-21 11:07:31 +10:00
checklist
discourse-adplugin I18N: Update translations (#41653) 2026-07-13 17:38:52 +02:00
discourse-affiliate FIX: Apply affiliate links to localized posts (#41770) 2026-07-16 16:27:55 +02:00
discourse-ai FIX: Finalize AI replies at token budget (#41833) 2026-07-20 19:31:58 +10:00
discourse-apple-auth
discourse-assign FEATURE: schema based workflow (#41684) 2026-07-15 13:22:29 +02:00
discourse-cakeday DEV: Remove queryAll uses in core tests (#41324) 2026-07-01 11:55:39 +01:00
discourse-calendar UX: improve livestream chat messaging (#41750) 2026-07-21 11:07:31 +10:00
discourse-chat-integration I18N: Update translations (#40823) 2026-06-12 16:19:35 +02:00
discourse-data-explorer FEAT: Remember the last used editor mode in Data Explorer (#41765) 2026-07-17 10:16:11 +08:00
discourse-details DEV: Drop unused decorateCooked from discourse-details (#41426) 2026-07-03 17:18:20 +01:00
discourse-gamification I18N: Update translations (#41584) 2026-07-12 17:29:05 +02:00
discourse-github I18N: Update translations (#41762) 2026-07-16 11:06:03 +02:00
discourse-graphviz UX: Fit large Graphviz graphs to the box instead of overflowing (#40915) 2026-06-15 22:44:39 +01:00
discourse-hcaptcha DEV: Block external requests in system specs via Chrome DNS resolver (#40685) 2026-06-17 12:29:57 +01:00
discourse-lazy-videos
discourse-local-dates I18N: Update translations (#41257) 2026-06-29 15:30:28 +02:00
discourse-login-with-amazon I18N: Update translations (#40789) 2026-06-11 12:09:07 +02:00
discourse-lti
discourse-math I18N: Update translations (#40680) 2026-06-09 17:21:49 +02:00
discourse-microsoft-auth
discourse-narrative-bot
discourse-oauth2-basic I18N: Update translations (#40789) 2026-06-11 12:09:07 +02:00
discourse-openid-connect I18N: Update translations (#41830) 2026-07-20 11:15:26 +02:00
discourse-patreon DEV: Drop jquery in patreon plugin (#41425) 2026-07-03 17:13:54 +01:00
discourse-policy I18N: Update translations (#40823) 2026-06-12 16:19:35 +02:00
discourse-post-voting SECURITY: Reviewable conversations expose post-voting flag PM excerpts to category moderators outside the PM (#41527) 2026-07-07 15:37:22 -05:00
discourse-presence SECURITY: Authorization bypass in wiki edit presence leaks editor identities (#41474) 2026-07-06 12:53:23 -05:00
discourse-reactions FEATURE: Bump enable_discourse_reactions_by_default upcoming change to stable (#41826) 2026-07-21 09:49:45 +10:00
discourse-rewind DEV: Bump eslint/lint-configs, and correct violations (#41321) 2026-07-01 10:39:57 +01:00
discourse-rss-polling I18N: Update translations (#41653) 2026-07-13 17:38:52 +02:00
discourse-solved DEV: bump solved shared issues to stable (#41794) 2026-07-17 10:36:42 +04:00
discourse-subscriptions UX: Include full state names where previously truncated (#41713) 2026-07-14 22:49:12 -04:00
discourse-templates FIX: Support unloaded categories in template topic options (#41230) 2026-06-29 14:35:07 +08:00
discourse-topic-voting FIX: Correctly close fully merged topics containing whispers (#41800) 2026-07-17 11:07:29 +02:00
discourse-user-notes I18N: Update translations (#40680) 2026-06-09 17:21:49 +02:00
discourse-workflows FEATURE: Add Bypass permission checks to create post (#41279) 2026-07-20 11:06:37 +02:00
discourse-zendesk-plugin
footnote UX: prevent nested footnotes (#41325) 2026-07-02 19:55:10 +02:00
poll UX: chart legend styling (#41694) 2026-07-14 11:18:42 +02:00
spoiler-alert FIX: Allow re-blur on spoiler when in details view (#41266) 2026-06-29 12:47:49 -05:00
styleguide DEV: Minor fixes to everyone-based permissions for granular_anonymous_and_logged_in_groups_permissions (#41459) 2026-07-07 09:38:56 +10:00