cetirizine

An experimental matrix client written in reactjs utilizing tailwind and storybook
git clone git://archive.git.mtrnord.blog/MTRNord/cetirizine.git
Log | Files | Refs | README | LICENSE

commit d7f36ec558dacd2476bcb402d867124971f5c12b
parent ea9c4dac9ad8768e809110133ccfc9223edbfed4
Author: MTRNord <mtrnord1@gmail.com>
Date:   Wed, 10 May 2023 16:48:54 +0200

Reduce avatar sizes downloaded

Diffstat:
Msrc/app/sdk/client.ts | 7+++++--
Msrc/app/sdk/room.ts | 4++--
2 files changed, 7 insertions(+), 4 deletions(-)

diff --git a/src/app/sdk/client.ts b/src/app/sdk/client.ts @@ -119,8 +119,11 @@ export class MatrixClient extends EventEmitter { this.sync.on("rooms", (rooms) => this.onSyncRooms(rooms)); } - public convertMXC(url: string): string { - return `${this.user.hostname}/_matrix/media/r0/download/${url.substring(6)}`; + public convertMXC(url: string, size?: number): string { + if (size) { + return `${this.user.hostname}/_matrix/media/v3/thumbnail/${url.substring(6)}?width=${size}&height=${size}&method=scale`; + } + return `${this.user.hostname}/_matrix/media/v3/download/${url.substring(6)}`; } public setCurrentRoom(roomID?: string) { diff --git a/src/app/sdk/room.ts b/src/app/sdk/room.ts @@ -220,14 +220,14 @@ export class Room extends EventEmitter { return name; } - public getMemberAvatar(userID: string): string | undefined { + public getMemberAvatar(userID: string, size: number = 32): string | undefined { let avatarURL: string | undefined = undefined; this.stateEvents.forEach((event) => { if (event.type === "m.room.member") { if (event.state_key === userID && event.content.membership == "join") { const rawAvatarURL = event.content.avatar_url; if (rawAvatarURL?.startsWith("mxc://")) { - avatarURL = this.client.convertMXC(rawAvatarURL); + avatarURL = this.client.convertMXC(rawAvatarURL, size); } } }