Reply quote shows a media thumbnail when replying to an image/video #151

Closed
opened 2026-09-17 22:49:23 -04:00 by jared · 2 comments
Owner

Verify current rendering of the reply quote (components/message/Reply* / ReplyLayout) for m.image/m.video/m.sticker — if it says "sent an image" only, add a small thumbnail (existing blurhash + thumbnail URL, authenticated media aware, 32–40 px, click follows the reply as today). Encrypted media: reuse the decrypting thumbnail path already used by the timeline; never fetch full-size. Also the composer's reply-draft preview.

Verify current rendering of the reply quote (`components/message/Reply*` / `ReplyLayout`) for `m.image`/`m.video`/`m.sticker` — if it says "sent an image" only, add a small thumbnail (existing blurhash + thumbnail URL, authenticated media aware, 32–40 px, click follows the reply as today). Encrypted media: reuse the decrypting thumbnail path already used by the timeline; never fetch full-size. Also the composer's reply-draft preview.
jared added this to the Features 2026-Q4 milestone 2026-09-17 22:49:23 -04:00
jared added the enhancementpriority: lowuxarea: messagingarea: media labels 2026-09-17 22:49:23 -04:00
jared self-assigned this 2026-09-17 22:49:23 -04:00
Author
Owner

Verified — not implemented. Replying to an image message through the UI produces a quote of bob reply-target.png (filename only, no thumbnail):

quote

src/app/components/message/Reply.tsx has no media branch (no img, no MsgType.Image handling); the quote is the plain-text fallback body. So this moves from [verify] to a real enhancement: in Reply, when the replied-to event is m.image/m.video (or m.sticker) render a small (≈32 px) thumbnail from info.thumbnail_url / url (decrypting file/thumbnail_file in E2EE rooms via the existing useMediaAuthentication + decrypt helpers the timeline already uses) before the caption/filename, and keep the text fallback when the thumbnail fails.

Verified — **not implemented**. Replying to an image message through the UI produces a quote of `bob reply-target.png` (filename only, no thumbnail): ![quote](https://code.lotusguild.org/attachments/5597c870-2d64-4b35-985d-93634d562f8f) `src/app/components/message/Reply.tsx` has no media branch (no `img`, no `MsgType.Image` handling); the quote is the plain-text fallback body. So this moves from [verify] to a real enhancement: in `Reply`, when the replied-to event is `m.image`/`m.video` (or `m.sticker`) render a small (≈32 px) thumbnail from `info.thumbnail_url` / `url` (decrypting `file`/`thumbnail_file` in E2EE rooms via the existing `useMediaAuthentication` + decrypt helpers the timeline already uses) before the caption/filename, and keep the text fallback when the thumbnail fails.
jared changed title from [verify] Reply quote shows a media thumbnail when replying to an image/video to Reply quote shows a media thumbnail when replying to an image/video 2026-09-18 19:52:25 -04:00
Author
Owner

Done in 22d46a79. Verified first: the quote showed only the filename ("green.png").

Now both the timeline quote and the composer's reply-draft preview carry a 36 px thumbnail for m.image / m.video (play badge) / m.sticker, from the event's own thumbnail — decrypted for E2EE media with the gallery's useDecryptedMediaUrl, never the full-size file; blurhash-free placeholder icon while it loads. Click still jumps to the original.

quote
draft

Done in 22d46a79. Verified first: the quote showed only the filename ("green.png"). Now both the timeline quote and the composer's reply-draft preview carry a 36 px thumbnail for `m.image` / `m.video` (play badge) / `m.sticker`, from the event's own thumbnail — decrypted for E2EE media with the gallery's `useDecryptedMediaUrl`, never the full-size file; blurhash-free placeholder icon while it loads. Click still jumps to the original. ![quote](https://code.lotusguild.org/attachments/56783988-990f-4cd9-97f0-77e936a9c0e8) ![draft](https://code.lotusguild.org/attachments/0da05dc6-fdaf-46d1-ba21-3782111b2531)
jared closed this issue 2026-09-20 14:27:29 -04:00
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: LotusGuild/cinny#151