diff --git a/src/components/structures/SpaceHierarchy.tsx b/src/components/structures/SpaceHierarchy.tsx index 2baed15eb8..5e17723ab1 100644 --- a/src/components/structures/SpaceHierarchy.tsx +++ b/src/components/structures/SpaceHierarchy.tsx @@ -1,5 +1,5 @@ /* -Copyright 2021 The Matrix.org Foundation C.I.C. +Copyright 2021 - 2023 The Matrix.org Foundation C.I.C. Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except in compliance with the License. @@ -32,10 +32,11 @@ import { Room, RoomEvent } from "matrix-js-sdk/src/models/room"; import { RoomHierarchy } from "matrix-js-sdk/src/room-hierarchy"; import { EventType, RoomType } from "matrix-js-sdk/src/@types/event"; import { IHierarchyRelation, IHierarchyRoom } from "matrix-js-sdk/src/@types/spaces"; -import { MatrixClient } from "matrix-js-sdk/src/matrix"; +import { MatrixClient, MatrixError } from "matrix-js-sdk/src/matrix"; import classNames from "classnames"; import { sortBy, uniqBy } from "lodash"; import { GuestAccess, HistoryVisibility } from "matrix-js-sdk/src/@types/partials"; +import { logger } from "matrix-js-sdk/src/logger"; import defaultDispatcher from "../../dispatcher/dispatcher"; import { _t } from "../../languageHandler"; @@ -398,8 +399,19 @@ export const joinRoom = async (cli: MatrixClient, hierarchy: RoomHierarchy, room await cli.joinRoom(roomId, { viaServers: Array.from(hierarchy.viaMap.get(roomId) || []), }); - } catch (err) { - SdkContextClass.instance.roomViewStore.showJoinRoomError(err, roomId); + } catch (err: unknown) { + if (err instanceof MatrixError) { + SdkContextClass.instance.roomViewStore.showJoinRoomError(err, roomId); + } else { + logger.warn("Got a non-MatrixError while joining room", err); + SdkContextClass.instance.roomViewStore.showJoinRoomError( + new MatrixError({ + error: _t("Unknown error"), + }), + roomId, + ); + } + return; } diff --git a/src/i18n/strings/en_EN.json b/src/i18n/strings/en_EN.json index 1a33eb7b68..c070fa40d3 100644 --- a/src/i18n/strings/en_EN.json +++ b/src/i18n/strings/en_EN.json @@ -3437,6 +3437,7 @@ "You don't have permission": "You don't have permission", "This room is suggested as a good one to join": "This room is suggested as a good one to join", "Suggested": "Suggested", + "Unknown error": "Unknown error", "Select a room below first": "Select a room below first", "Mark as not suggested": "Mark as not suggested", "Mark as suggested": "Mark as suggested", @@ -3662,7 +3663,6 @@ "Unable to set up secret storage": "Unable to set up secret storage", "Passphrases must match": "Passphrases must match", "Passphrase must not be empty": "Passphrase must not be empty", - "Unknown error": "Unknown error", "Export room keys": "Export room keys", "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.": "This process allows you to export the keys for messages you have received in encrypted rooms to a local file. You will then be able to import the file into another Matrix client in the future, so that client will also be able to decrypt these messages.", "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.": "The exported file will allow anyone who can read it to decrypt any encrypted messages that you can see, so you should be careful to keep it secure. To help with this, you should enter a passphrase below, which will be used to encrypt the exported data. It will only be possible to import the data by using the same passphrase.",