Interface IAddLiveEventOptions

interface IAddLiveEventOptions {
    addToState: boolean;
    duplicateStrategy?: DuplicateStrategy;
    fromCache?: boolean;
    roomState?: RoomState;
    timelineWasEmpty?: boolean;
}

Hierarchy

  • Pick<
        IAddEventToTimelineOptions,
        "fromCache"
        | "roomState"
        | "timelineWasEmpty"
        | "addToState",
    >
    • IAddLiveEventOptions

Properties

addToState: boolean

Whether to add timeline events to the state as was done in legacy sync v2. If true then timeline events will be added to the state. In sync v2 with org.matrix.msc4222.use_state_after and simplified sliding sync, all state arrives explicitly and timeline events should not be added.

duplicateStrategy?: DuplicateStrategy

Applies to events in the timeline only. If this is 'replace' then if a duplicate is encountered, the event passed to this function will replace the existing event in the timeline. If this is not specified, or is 'ignore', then the event passed to this function will be ignored entirely, preserving the existing event in the timeline. Events are identical based on their event ID only.

fromCache?: boolean

Whether the sync response came from cache

roomState?: RoomState

The state events to reconcile metadata from

timelineWasEmpty?: boolean

Whether the timeline was empty before the marker event arrived in the room. This could be happen in a variety of cases:

  1. From the initial sync
  2. It's the first state we're seeing after joining the room
  3. Or whether it's coming from syncFromCache

A marker event refers to UNSTABLE_MSC2716_MARKER and indicates that history was imported somewhere back in time. It specifically points to an MSC2716 insertion event where the history was imported at. Marker events are sent as state events so they are easily discoverable by clients and homeservers and don't get lost in timeline gaps.