matrix-react-sdk
Version:
SDK for matrix.org using React
49 lines (48 loc) • 3.01 kB
TypeScript
import React from "react";
import { MatrixEvent, MatrixClient } from "matrix-js-sdk/src/matrix";
import { Optional } from "matrix-events-sdk";
import { EventTileProps } from "../components/views/rooms/EventTile";
import { TimelineRenderingType } from "../contexts/RoomContext";
export interface EventTileTypeProps extends Pick<EventTileProps, "mxEvent" | "highlights" | "highlightLink" | "showUrlPreview" | "onHeightChanged" | "forExport" | "getRelationsForEvent" | "editState" | "replacingEventId" | "permalinkCreator" | "callEventGrouper" | "isSeeingThroughMessageHiddenForModeration" | "inhibitInteraction"> {
ref?: React.RefObject<any>;
timestamp?: JSX.Element;
maxImageHeight?: number;
overrideBodyTypes?: Record<string, typeof React.Component>;
overrideEventTypes?: Record<string, typeof React.Component>;
}
type FactoryProps = Omit<EventTileTypeProps, "ref">;
type Factory<X = FactoryProps> = (ref: Optional<React.RefObject<any>>, props: X) => JSX.Element;
export declare const MessageEventFactory: Factory;
export declare const TextualEventFactory: Factory;
export declare const JitsiEventFactory: Factory;
export declare const JSONEventFactory: Factory;
export declare const RoomCreateEventFactory: Factory;
/**
* Find an event tile factory for the given conditions.
* @param mxEvent The event.
* @param cli The matrix client to reference when needed.
* @param showHiddenEvents Whether hidden events should be shown.
* @param asHiddenEv When true, treat the event as always hidden.
* @returns The factory, or falsy if not possible.
*/
export declare function pickFactory(mxEvent: MatrixEvent, cli: MatrixClient, showHiddenEvents: boolean, asHiddenEv?: boolean): Optional<Factory>;
/**
* Render an event as a tile
* @param renderType The render type. Used to inform properties given to the eventual component.
* @param props The properties to provide to the eventual component.
* @param showHiddenEvents Whether hidden events should be shown.
* @param cli Optional client instance to use, otherwise the default MatrixClientPeg will be used.
* @returns The tile as JSX, or falsy if unable to render.
*/
export declare function renderTile(renderType: TimelineRenderingType, props: EventTileTypeProps, showHiddenEvents: boolean, cli?: MatrixClient): Optional<JSX.Element>;
/**
* A version of renderTile() specifically for replies.
* @param props The properties to specify on the eventual object.
* @param showHiddenEvents Whether hidden events should be shown.
* @param cli Optional client instance to use, otherwise the default MatrixClientPeg will be used.
* @returns The tile as JSX, or falsy if unable to render.
*/
export declare function renderReplyTile(props: EventTileTypeProps, showHiddenEvents: boolean, cli?: MatrixClient): Optional<JSX.Element>;
export declare function isMessageEvent(ev: MatrixEvent): boolean;
export declare function haveRendererForEvent(mxEvent: MatrixEvent, matrixClient: MatrixClient, showHiddenEvents: boolean): boolean;
export {};