Skip to content

Hide join and leave messages by default with a client-side setting - #3214

Open
joshfriend wants to merge 1 commit into
block:mainfrom
joshfriend:hide-join-leave-messages
Open

Hide join and leave messages by default with a client-side setting#3214
joshfriend wants to merge 1 commit into
block:mainfrom
joshfriend:hide-join-leave-messages

Conversation

@joshfriend

Copy link
Copy Markdown

Summary

Adds a device-local "Show join and leave messages" setting, hidden by default, controlling whether member_joined, member_left, and member_removed system rows render in channel timelines. One toggle covers all three row types on both desktop (localStorage) and mobile (SharedPreferences).

This is purely client side. The relay still delivers the kind 40099 membership events so member lists stay live, only timeline rendering is filtered. The desktop toggle lives under Settings > Appearance in a new Messages section, and mobile has a matching Messages section in Settings.

Related issue

None found.

Testing

just desktop-check, just desktop-typecheck, and just desktop-test (3675 passed) plus dart format, flutter analyze, and the full flutter test suite. New unit tests cover the desktop timeline filter, a mobile widget test covers the filtered timeline, and a Playwright screenshot spec (tests/e2e/join-leave-visibility-screenshots.spec.ts) produced the shots below so they can be regenerated. Mobile screenshots are not included, the mobile toggle mirrors the desktop behavior and is covered by widget tests.

The new toggle under Settings > Appearance, off by default:

settings toggle

Default timeline: a join, an add, and a leave were posted between these two messages but no system rows render:

timeline default hidden

Same timeline with the setting enabled:

timeline enabled shown

@joshfriend
joshfriend requested a review from a team as a code owner July 27, 2026 21:20
@joshfriend
joshfriend force-pushed the hide-join-leave-messages branch from 19a48f9 to 552e608 Compare July 28, 2026 14:39
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant