From 70ba6c3c6b448aa8bba90f4a4cb22034e95e645d Mon Sep 17 00:00:00 2001 From: Robin Townsend Date: Mon, 17 Oct 2022 01:46:44 -0400 Subject: [PATCH] Make avatars work in matryoshka mode The client just didn't have a homeserver URL to perform media queries against. --- src/UrlParams.ts | 7 +++++-- src/widget.ts | 5 +++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/src/UrlParams.ts b/src/UrlParams.ts index 7090019..01ea548 100644 --- a/src/UrlParams.ts +++ b/src/UrlParams.ts @@ -35,12 +35,14 @@ export interface UrlParams { isPtt: boolean; // Whether to use end-to-end encryption e2eEnabled: boolean; - // The user's ID (only used in Matroska mode) + // The user's ID (only used in matryoshka mode) userId: string | null; // The display name to use for auto-registration displayName: string | null; - // The device's ID (only used in Matroska mode) + // The device's ID (only used in matryoshka mode) deviceId: string | null; + // The base URL of the homeserver to use for media lookups in matryoshka mode + baseUrl: string | null; // The BCP 47 code of the language the app should use lang: string | null; } @@ -92,6 +94,7 @@ export const getUrlParams = ( userId: getParam("userId"), displayName: getParam("displayName"), deviceId: getParam("deviceId"), + baseUrl: getParam("baseUrl"), lang: getParam("lang"), }; }; diff --git a/src/widget.ts b/src/widget.ts index b42a2d8..f481c88 100644 --- a/src/widget.ts +++ b/src/widget.ts @@ -80,10 +80,11 @@ export const widget: WidgetHelpers | null = (() => { // We need to do this now rather than later because it has capabilities to // request, and is responsible for starting the transport (should it be?) - const { roomId, userId, deviceId } = getUrlParams(); + const { roomId, userId, deviceId, baseUrl } = getUrlParams(); if (!roomId) throw new Error("Room ID must be supplied"); if (!userId) throw new Error("User ID must be supplied"); if (!deviceId) throw new Error("Device ID must be supplied"); + if (!baseUrl) throw new Error("Base URL must be supplied") // These are all the event types the app uses const sendState = [ @@ -119,7 +120,7 @@ export const widget: WidgetHelpers | null = (() => { }, roomId, { - baseUrl: "", + baseUrl, userId, deviceId, timelineSupport: true,