matrix-react-sdk
Version:
SDK for matrix.org using React
55 lines (54 loc) • 2.29 kB
TypeScript
import { Room, SyncState } from "matrix-js-sdk/src/matrix";
import { ActionPayload } from "../../dispatcher/payloads";
import { AsyncStoreWithClient } from "../AsyncStoreWithClient";
import { MatrixDispatcher } from "../../dispatcher/dispatcher";
import { TagID } from "../room-list/models";
import { ListNotificationState } from "./ListNotificationState";
import { RoomNotificationState } from "./RoomNotificationState";
import { SummarizedNotificationState } from "./SummarizedNotificationState";
interface IState {
}
export declare const UPDATE_STATUS_INDICATOR: unique symbol;
export declare class RoomNotificationStateStore extends AsyncStoreWithClient<IState> {
private static readonly internalInstance;
private roomMap;
private listMap;
private _globalState;
private constructor();
/**
* @internal Public for test only
*/
static testInstance(dispatcher: MatrixDispatcher): RoomNotificationStateStore;
/**
* Gets a snapshot of notification state for all visible rooms. The number of states recorded
* on the SummarizedNotificationState is equivalent to rooms.
*/
get globalState(): SummarizedNotificationState;
/**
* Gets an instance of the list state class for the given tag.
* @param tagId The tag to get the notification state for.
* @returns The notification state for the tag.
*/
getListState(tagId: TagID): ListNotificationState;
/**
* Gets a copy of the notification state for a room. The consumer should not
* attempt to destroy the returned state as it may be shared with other
* consumers.
* @param room The room to get the notification state for.
* @returns The room's notification state.
*/
getRoomState(room: Room): RoomNotificationState;
static get instance(): RoomNotificationStateStore;
private onSync;
/**
* If the SummarizedNotificationState of this room has changed, or forceEmit
* is true, emit an UPDATE_STATUS_INDICATOR event.
*
* @internal public for test
*/
emitUpdateIfStateChanged: (state: SyncState, forceEmit: boolean) => void;
protected onReady(): Promise<void>;
protected onNotReady(): Promise<any>;
protected onAction(payload: ActionPayload): Promise<void>;
}
export {};