matrix-react-sdk
Version:
SDK for matrix.org using React
83 lines (82 loc) • 3.17 kB
TypeScript
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;