Repository navigation
[Contribution Approval] Grouped Media Grid #3648
Description
Activity
- changed the title
[-][Contribution Approval] Grouped Media Grid in Chat Timeline[/-][+][Contribution Approval] Grouped Media Grid[/+]on Sep 23, 2026 Thank you very much :-) Sounds good to me. I think the most challenging part of this is the combining of multiple events into one. There is also one other thing we need to think about: What about if we address a single event ID. Like what happens if we have 2+ image events in a row which we wanna display combined, but we open a link with event-ID so we wanna scroll to the Event A or Event B. Then both should lead to the same combined representation widget. How can we solve that, without adding too much complexity? Maybe adding another rule that if
scrollToEventIdMarkeris on an event we also do not combine this event with other images.Another challenge: What if we wanna interact with only one of the images. e.g. we want to delete one of the images but not the other ones. or we want to reply to one of them or something else. -> maybe a simple fix would be to not display images as combined if we are in select mode?
This is already implemented in Element X Android using MSC4274 (Inline media galleries via msgtypes).
See Element X Android PR:
element-hq/element-x-android#6519
element-hq/element-x-android#7112So this could potentially be implemented using the existing MSC rather than client-side grouping of separate
m.image/m.videoevents.Reacted by utoshanIt is indeed worth checking out. I'll look into it, and we'll need to wait for @krille-chan to respond anyway to approve this idea
@ZoftTy thank you so much, I'll take a look. However it looks like there is no fallback for other clients?
Correct. Element X Android currently has no fallback for clients that don't support
m.gallery, and the feature is behind a Labs setting.Element X version: 26.09.2

Feature Description
Summary
Group consecutive media events (images/videos) sent by the same user within a short time into a single cohesive grid bubble (similar to WhatsApp / Telegram / Messenger) rather than displaying them as full-width individual media.
Proposed Technical Design
Client-side Grouping (No custom Matrix events):
m.image,m.video) to preserve compatibility with all Matrix clients.Grouping Rules:
UI & Layout:
+Nindicator on the 4th thumbnailInteraction:
ImageViewerfocused on that specific event, allowing normal swipe navigation through the timelineRationale
Sending multiple photos or videos currently clutters the chat with individual, full-width message bubbles, pushing earlier messages off-screen and requiring excessive scrolling. Grouping consecutive media into a compact grid will keep the conversation readable, reduce visual spam, and deliver a much cleaner, more convenient messaging experience found in other modern chat apps.
Mockup
No response
Additional Context
No response