Skip to content

feat(messenger): show the linked message when a link lands in a gated group - #1777

Open
bmc08gt wants to merge 2 commits into
feat/message-link-cardfrom
feat/message-link-gated-landing
Open

bmc08gt wants to merge 2 commits into
feat/message-link-cardfrom
feat/message-link-gated-landing

Conversation

@bmc08gt

@bmc08gt bmc08gt commented Oct 14, 2026

Copy link
Copy Markdown
Collaborator

Stacked on #1774 (message card), which is stacked on #1772 (route and land).

A non-member below a group's balance requirement never fetches the transcript (GatedTranscriptPlaceholder draws gray bars behind the blur), so a message link into that group had nothing to jump to.

  • On a withheld landing, ChatViewModel asks GetMessage with FULL_OR_REDACTED for the linked message only. Nothing is paged or stored.
  • gatedLandingBubble maps it to a ContentBubble with no capabilities, canReact = false and redacted set from the server. Sender, time and reactions come through whole; a redacted body draws blurred.
  • GatedLandingRow draws it centred over the blur, between the bars, outside BlurredContent. It flashes once on arrival. The back chip is the existing one from feat(messenger): route message links and land on the message #1772.
  • ContentBubble.redacted blurs a text body and clears its semantics, so it is not read out, selected or copied. The blur and its solid-block fallback below Android 12 move from MessageLinkCard into a shared Modifier.redactedText().

If the viewer later reaches the transcript (joins or buys in), the landing reads as Readable and the normal jump runs.

Design: Figma node 11777:207, flow 6 in the message-links design note.

@bmc08gt bmc08gt self-assigned this Oct 14, 2026
@github-actions github-actions Bot added the type: feature New functionality label Oct 14, 2026
@bmc08gt
bmc08gt force-pushed the feat/message-link-gated-landing branch from 8214f4a to 857a455 Compare October 14, 2026 19:22
@bmc08gt
bmc08gt force-pushed the feat/message-link-card branch from 1b01e76 to f5de743 Compare October 14, 2026 19:22
… group

A non-member below a group's balance requirement never fetches the
transcript, so a message link had nothing to jump to and opened on the
placeholder rows alone.

The landing now asks GetMessage (FULL_OR_REDACTED) for the one message,
without storing it, and draws it as a single row over the blur: sender
name and avatar, the bubble with its body blurred, and the reaction
pills. The row has no capabilities and cannot be reacted to. It flashes
once on arrival; the back chip behaves as on a normal landing.

ContentBubble gains `redacted`, which blurs a text body and drops it
from the accessibility tree. The blur and its pre-Android 12 fallback
move out of MessageLinkCard into a shared Modifier.redactedText().

Design: Figma node 11777:207, flow 6 of the message-links design note.
The reply branch of ContentBubble did not pass item.redacted to TextBubble,
so a redacted reply landed on in a gated group drew the server's placeholder
sharp.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

type: feature New functionality

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant