UNPKG

@vector-im/matrix-bot-sdk

Version:

TypeScript/JavaScript SDK for Matrix bots and appservices

56 lines (49 loc) 1.5 kB
import { MentionPill, UserID } from ".."; /** * Profile information commonly associated with Matrix profiles * @category Models */ export interface MatrixProfileInfo { /** * The display name of the user, if any. */ displayname?: string; /** * A URL to the user's avatar, if any. */ avatar_url?: string; } /** * Represents a user's profile, possibly in a room. * @category Models */ export class MatrixProfile { /** * Creates a new profile representation for a user. * @param {string} userId The user ID the profile is for. * @param {MatrixProfile} profile The profile itself. */ constructor(private userId: string, private profile: MatrixProfileInfo) { } /** * The display name for the user. This will always return a value, though it * may be based upon their user ID if no explicit display name is set. */ public get displayName(): string { if (!this.profile?.displayname) return new UserID(this.userId).localpart; return this.profile.displayname; } /** * The avatar URL for the user. If the user does not have an avatar, this will * be null. */ public get avatarUrl(): string { return this.profile?.avatar_url || null; // enforce null over boolean semantics } /** * A mention pill for this user. */ public get mention(): MentionPill { return MentionPill.withDisplayName(this.userId, this.displayName); } }