Class ReadReceipt<Events, Arguments, SuperclassArguments>Abstract

Typed Event Emitter class which can act as a Base Model for all our model and communication events. This makes it much easier for us to distinguish between events, as we now need to properly type this, so that our events are not stringly-based and prone to silly typos.

Type Parameters

  • Events extends string

  • Arguments extends ListenerMap<Events>

  • SuperclassArguments extends ListenerMap<any> = Arguments

Hierarchy

Constructors

  • Type Parameters

    • Events extends string

    • Arguments extends ListenerMap<Events>

    • SuperclassArguments extends ListenerMap<any> = Arguments

    Parameters

    • Optional options: EventEmitterOptions

    Returns ReadReceipt<Events, Arguments, SuperclassArguments>

Properties

receiptCacheByEventId: ReceiptCache = ...
receipts: MapWithDefault<string, Map<string, [null | WrappedReceipt, null | WrappedReceipt]>> = ...
timeline: MatrixEvent[]

Methods

  • Add a temporary local-echo receipt to the room to reflect in the client the fact that we've sent one.

    Parameters

    • userId: string

      The user ID if the receipt sender

    • e: MatrixEvent

      The event that is to be acknowledged

    • receiptType: ReceiptType

      The type of receipt

    Returns void

  • This issue should also be addressed on synapse's side and is tracked as part of https://github.com/matrix-org/synapse/issues/14837

    Retrieves the read receipt for the logged in user and checks if it matches the last event in the room and whether that event originated from the logged in user. Under those conditions we can consider the context as read. This is useful because we never send read receipts against our own events

    Parameters

    • userId: string

      the logged in user

    Returns void

  • Get the ID of the event that a given user has read up to, or null if we have received no read receipts from them.

    Returns

    ID of the latest event that the given user has read, or null.

    Parameters

    • userId: string

      The user ID to get read receipt event ID for

    • ignoreSynthesized: boolean = false

      If true, return only receipts that have been sent by the server, not implicit ones generated by the JS SDK.

    Returns null | string

  • Gets the latest receipt for a given user in the room

    Returns

    the latest receipts of the chosen type for the chosen user

    Parameters

    • userId: string

      The id of the user for which we want the receipt

    • ignoreSynthesized: boolean = false

      Whether to ignore synthesized receipts or not

    • receiptType: ReceiptType = ReceiptType.Read

      Optional. The type of the receipt we want to get

    Returns null | WrappedReceipt

  • Determines if the given user has read a particular event ID with the known history of the room. This is not a definitive check as it relies only on what is available to the room at the time of execution.

    Returns

    True if the user has read the event, false otherwise.

    Parameters

    • userId: string

      The user ID to check the read state of.

    • eventId: string

      The event ID to check if the user read.

    Returns boolean

Generated using TypeDoc