UNPKG

matrix-react-sdk

Version:
83 lines (82 loc) 3.17 kB
import React, { ReactNode } from "react"; import { MatrixClient, RoomMember, Room, User, Device } from "matrix-js-sdk/src/matrix"; import { VerificationRequest } from "matrix-js-sdk/src/crypto-api"; import { RightPanelPhases } from "../../../stores/right-panel/RightPanelStorePhases"; import { E2EStatus } from "../../../utils/ShieldUtils"; export interface IDevice extends Device { ambiguous?: boolean; } export declare const disambiguateDevices: (devices: IDevice[]) => void; export declare const getE2EStatus: (cli: MatrixClient, userId: string, devices: IDevice[]) => Promise<E2EStatus | undefined>; /** * Display one device and the related actions * @param userId current user id * @param device device to display * @param isUserVerified false when the user is not verified * @constructor */ export declare function DeviceItem({ userId, device, isUserVerified, }: { userId: string; device: IDevice; isUserVerified: boolean; }): JSX.Element; export declare const UserOptionsSection: React.FC<{ member: Member; canInvite: boolean; isSpace?: boolean; children?: ReactNode; }>; export declare const warnSelfDemote: (isSpace: boolean) => Promise<boolean>; interface IPowerLevelsContent { events?: Record<string, number>; users_default?: number; events_default?: number; state_default?: number; ban?: number; kick?: number; redact?: number; } export declare const isMuted: (member: RoomMember, powerLevelContent: IPowerLevelsContent) => boolean; export declare const getPowerLevels: (room: Room) => IPowerLevelsContent; export declare const useRoomPowerLevels: (cli: MatrixClient, room: Room) => IPowerLevelsContent; interface IBaseProps { member: RoomMember; isUpdating: boolean; startUpdating(): void; stopUpdating(): void; } export declare const RoomKickButton: ({ room, member, isUpdating, startUpdating, stopUpdating, }: Omit<IBaseRoomProps, "powerLevels">) => JSX.Element | null; export declare const BanToggleButton: ({ room, member, isUpdating, startUpdating, stopUpdating, }: Omit<IBaseRoomProps, "powerLevels">) => JSX.Element; interface IBaseRoomProps extends IBaseProps { room: Room; powerLevels: IPowerLevelsContent; children?: ReactNode; } export declare const RoomAdminToolsContainer: React.FC<IBaseRoomProps>; interface IRoomPermissions { modifyLevelMax: number; canEdit: boolean; canInvite: boolean; } export declare const PowerLevelEditor: React.FC<{ user: RoomMember; room: Room; roomPermissions: IRoomPermissions; }>; export declare const useDevices: (userId: string) => IDevice[] | undefined | null; export type Member = User | RoomMember; export declare const UserInfoHeader: React.FC<{ member: Member; e2eStatus?: E2EStatus; roomId?: string; }>; interface IProps { user: Member; room?: Room; phase: RightPanelPhases.RoomMemberInfo | RightPanelPhases.SpaceMemberInfo | RightPanelPhases.EncryptionPanel; onClose(): void; verificationRequest?: VerificationRequest; verificationRequestPromise?: Promise<VerificationRequest>; } declare const UserInfo: React.FC<IProps>; export default UserInfo;