Skip to content

feat(mute): collapse muted-thread embeds with reveal (parity with muted users)#8

Merged
DocNR merged 1 commit into
mainfrom
fix/thread-mute-embed-parity
Jun 13, 2026
Merged

feat(mute): collapse muted-thread embeds with reveal (parity with muted users)#8
DocNR merged 1 commit into
mainfrom
fix/thread-mute-embed-parity

Conversation

@DocNR

@DocNR DocNR commented Jun 13, 2026

Copy link
Copy Markdown
Owner

Why this exists

Follow-up to #7 (thread muting, v26.12.2). This commit was developed and approved alongside #7 but landed on the branch after #7 was rebase-merged, so it didn't make it into main. This PR restores it.

What it does

Thread muting hard-hid notes in feeds/notifications, but didn't replicate the second tier that muted users get: a collapse-with-reveal placeholder wherever a note still renders through <Note> but isn't list-filtered (quotes/embeds and direct detail views). So a note that quoted a muted thread rendered the muted content in full.

This brings thread mute to parity with user mute at every tier:

  • Note/index.tsx — collapse to <MutedNote reason="thread"> ("This note is from a thread you muted" + "Temporarily display this note") for embeds + detail.
  • NoteCard.shouldHide + useFilteredReplies (both hooks) — hard-hide muted-thread notes for standalone cards and thread reply lists.
  • MutedNote generalized with a reason prop ('user' default) so the two share one component.

Feeds + notifications stay hard-hide — same as muted users. No version bump: this is a consistency refinement of the already-announced v26.12.2 feature (ships via the reload banner, no separate "What's new").

Test plan

  • A note that quotes a muted thread shows the embed collapsed to "This note is from a thread you muted" with a "Temporarily display this note" reveal (same as quoting a muted user)
  • Feed/notification behavior unchanged (muted-thread notes still vanish)

npm run build clean, 855 tests pass, lint clean.

🤖 Generated with Claude Code

…sers

Thread mute only hard-hid notes in feeds/notifications. Muted USERS get a
second tier: a 'show anyway' placeholder (<MutedNote>) wherever a note
renders through <Note> but isn't list-filtered (embeds/quotes and direct
detail views). Thread mute lacked that tier, so a quote of a muted thread
rendered in full.

Bring thread mute to parity at every tier muted users use:
- Note/index.tsx: collapse to <MutedNote reason='thread'> with a
  'Temporarily display this note' reveal (embeds + detail)
- NoteCard.shouldHide + useFilteredReplies (both hooks): hard-hide
  muted-thread notes (standalone cards + thread reply lists)
- MutedNote generalized with a reason prop ('user' default) so the
  component is not duplicated

Feeds + notifications stay hard-hide, same as muted users.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@cloudflare-workers-and-pages

Copy link
Copy Markdown

Deploying jank with  Cloudflare Pages  Cloudflare Pages

Latest commit: 6af469d
Status:⚡️  Build in progress...

View logs

@DocNR DocNR merged commit e61d166 into main Jun 13, 2026
1 of 2 checks passed
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