UNPKG

matrix-react-sdk

Version:
49 lines (48 loc) 3.01 kB
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 {};