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..56d83c0 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,