Skip to content

Handle muted streams and topics #346

Closed
@gnprice

Description

@gnprice

Not to be confused with muted users, #296. (The mechanisms are quite different, so that's an entirely independent task.)

This means:

  • Track which streams are muted, with subscription events and the corresponding initial data.
  • Track which topics are muted and which are unmuted or followed — i.e., the user's topic visibility policies — with user_topic events, muted_topics events for older servers, and the corresponding initial data.
    • See the reducer implementation in src/mute/muteModel.js in zulip-mobile; we should be able to basically transcribe that.
  • Implement getters for that data with appropriate logic to combine the stream-level and topic-level values.
    • See the getters in src/mute/muteModel.js in zulip-mobile, and match their logic.
  • Use the muting/visibility-policy information to control…
    • … which messages are shown in stream narrows and the all-messages narrow.
      • See getShownMessagesForNarrow in zulip-mobile's src/chat/narrowsSelectors.js.
    • …which messages are included in unread counts, for the various places they appear in the UI.
      • This will be done on the Unreads model class. Our various UI should already be calling methods there to get these counts.
    • …which topics and streams are included in the inbox view ui: Add "inbox" view #117.
    • …how topics are shown in a list of topics in a stream (if we have that screen by the time we take on this issue).

We'll also want to give the user the ability to change which streams are muted, and which topics are muted or unmuted or followed. That'll be a separate followup task.

Metadata

Metadata

Assignees

Labels

a-apiImplementing specific parts of the Zulip server APIa-modelImplementing our data model (PerAccountStore, etc.)

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions