From d2d6c5a580d10b054df7581f8db73725ffa94530 Mon Sep 17 00:00:00 2001 From: Eric Eastwood Date: Fri, 21 Oct 2022 16:06:11 -0500 Subject: [PATCH] Link rooms with `?via` query paramter from room directory landing page (#104) Fix https://github.com/matrix-org/matrix-public-archive/issues/91 So we're always able to join the room from our origin homeserver to the remote room we don't know about yet. --- shared/viewmodels/RoomDirectoryViewModel.js | 31 +++++++++++---------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/shared/viewmodels/RoomDirectoryViewModel.js b/shared/viewmodels/RoomDirectoryViewModel.js index bd1c38c..277548a 100644 --- a/shared/viewmodels/RoomDirectoryViewModel.js +++ b/shared/viewmodels/RoomDirectoryViewModel.js @@ -34,20 +34,6 @@ class RoomDirectoryViewModel extends ViewModel { this._homeserverUrl = homeserverUrl; this._homeserverName = homeserverName; this._matrixPublicArchiveURLCreator = matrixPublicArchiveURLCreator; - this._rooms = new ObservableArray( - rooms.map((room) => { - return { - roomId: room.room_id, - canonicalAlias: room.canonical_alias, - name: room.name, - mxcAvatarUrl: room.avatar_url, - homeserverUrlToPullMediaFrom: homeserverUrl, - numJoinedMembers: room.num_joined_members, - topic: room.topic, - archiveRoomUrl: matrixPublicArchiveURLCreator.archiveUrlForRoom(room.room_id), - }; - }) - ); this._pageSearchParameters = pageSearchParameters; // Default to what the page started with @@ -78,6 +64,23 @@ class RoomDirectoryViewModel extends ViewModel { }) ); + this._rooms = new ObservableArray( + rooms.map((room) => { + return { + roomId: room.room_id, + canonicalAlias: room.canonical_alias, + name: room.name, + mxcAvatarUrl: room.avatar_url, + homeserverUrlToPullMediaFrom: homeserverUrl, + numJoinedMembers: room.num_joined_members, + topic: room.topic, + archiveRoomUrl: matrixPublicArchiveURLCreator.archiveUrlForRoom(room.room_id, { + viaServers: [this.pageSearchParameters.homeserver], + }), + }; + }) + ); + this.#setupNavigation(); }