Closed
Description
From riot-web created by jryans: element-hq/element-web#9485
We'll need API support for aggregations (to support message editing and reactions). This will likely be broken down into sub-tasks in React and JS SDKs once the shape of the API is known in more detail.
For the moment, matrix-org/matrix-spec-proposals#1849 gives some idea of the direction here.
- parses and stores aggregated data
- parses relates_to events
- sends reactions
- provides reactions based on event.unsigned.relations.annotations (data got after an initial /sync)
- provide updated reactions
- dedicated store for aggregated reactions
- have a mechanism to notify updated reactions
- store aggregated reactions only for events in the timeline we have (other may be not accurate)
- keep event id of reactions made by the user (for unreaction and for displaying them differently in the UI)
- keep it even if the event is not (or no more) in our the timelines
- unreact
- handle incoming unreaction
Moved to specific issues:
- manage reactions for timelines opened on permalink -> Reaction: Support in non live timeline #2451
- update reactions on reactions update
- unreact when the reaction event id is not known (?)
- reactions in e2e rooms -> Support clear reactions in e2e rooms #2448
- call reaction success block only when reaction is stored -> Aggregation API: Local echo for reactions #2453
- Interface-driven reaction counts -> Aggregation API: Local echo for reactions #2453
Performance: ->
- filter out reaction events when paginating -> Aggregation API v2: Performance improvement #2454
- happy with lot of gappy syncs (?) ->