From 0ffd48212afda09566be4abd0b6a0f122eb8fc9f Mon Sep 17 00:00:00 2001 From: RMidhunSuresh <hi@midhun.dev> Date: Mon, 23 May 2022 12:11:52 +0530 Subject: [PATCH] Allow configuring avatar from config - Also don't show the letter in avatar --- public/config.json | 3 ++- src/types/IChatterboxConfig.ts | 2 ++ src/viewmodels/tiles.ts | 48 ++++++++++++++++++++++++++++++++++ 3 files changed, 52 insertions(+), 1 deletion(-) diff --git a/public/config.json b/public/config.json index 38a792e..fad29ef 100644 --- a/public/config.json +++ b/public/config.json @@ -8,5 +8,6 @@ }, "token": "k9SL1R~GcdbjiFjC", "invite_user": "@botuser:matrix.midhun.dev", - "encrypt_room": true + "encrypt_room": true, + "avatar": "https://i.imgur.com/FD1z37K.png" } diff --git a/src/types/IChatterboxConfig.ts b/src/types/IChatterboxConfig.ts index 6fab8ee..c555e79 100644 --- a/src/types/IChatterboxConfig.ts +++ b/src/types/IChatterboxConfig.ts @@ -13,6 +13,8 @@ export interface IChatterboxConfig { header: IHeader; // Token needed for token-authenticated registration token: string; + // URL of the image that should be used as the users avatar + avatar: string; } interface IHeader { diff --git a/src/viewmodels/tiles.ts b/src/viewmodels/tiles.ts index b91ae02..ec62735 100644 --- a/src/viewmodels/tiles.ts +++ b/src/viewmodels/tiles.ts @@ -5,36 +5,84 @@ class ChatterboxTextTile extends TextTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this.isOwn? this._options.config["avatar"]: null; + } } class ChatterboxImageTile extends ImageTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this.isOwn? this._options.config["avatar"]: null; + } } class ChatterboxVideoTile extends VideoTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this.isOwn? this._options.config["avatar"]: null; + } } class ChatterboxFileTile extends FileTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this.isOwn? this._options.config["avatar"]: null; + } } class ChatterboxLocationTile extends LocationTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this.isOwn? this._options.config["avatar"]: null; + } } class ChatterboxRedactedTile extends RedactedTile { get displayName() { return this.isOwn? "me" : super.displayName; } + + get avatarLetter() { + return ""; + } + + avatarUrl() { + return this._options.config["avatar"]; + } } // We don't want to show the (long and random) user-id in this announcement! -- GitLab