UNPKG

matrix-react-sdk

Version:
57 lines (56 loc) 2.12 kB
import { MatrixEvent, Room, RoomMember } from "matrix-js-sdk/src/matrix"; import { ButtonEvent } from "../components/views/elements/AccessibleButton"; import { PillType } from "../components/views/elements/Pill"; interface Args { /** Room in which the permalink should be displayed. */ room?: Room; /** When set forces the permalink type. */ type?: PillType; /** Permalink URL. */ url?: string; } interface HookResult { /** * Room member of a user mention permalink. * null for other links, if the profile was not found or not yet loaded. * This can change, for instance, from null to a RoomMember after the profile lookup completed. */ member: RoomMember | null; /** * Displayable text of the permalink resource. Can for instance be a user or room name. * null here means that there is nothing to display. Most likely if the URL was not a permalink. */ text: string | null; /** * Should be used for click actions on the permalink. * In case of a user permalink, a view profile action is dispatched. */ onClick: (e: ButtonEvent) => void; /** * This can be for instance a user or room Id. * null here means that the resource cannot be detected. Most likely if the URL was not a permalink. */ resourceId: string | null; /** * Target room of the permalink: * For an @room mention, this is the room where the permalink should be displayed. * For a room permalink, it is the room from the permalink. * null for other links or if the room cannot be found. */ targetRoom: Room | null; /** * Type of the pill plus "space" for spaces. * null here means that the type cannot be detected. Most likely if the URL was not a permalink. */ type: PillType | "space" | null; /** * Target event of the permalink. * Null if unable to load the event. */ event: MatrixEvent | null; } /** * Can be used to retrieve all information needed to display a permalink. */ export declare const usePermalink: (args: Args) => HookResult; export {};