From 6ea5e961024c955b17b66ca611b362c34641aaf5 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Tue, 28 Oct 2025 16:36:01 +0530 Subject: [PATCH 1/2] Add openRoom to Navigation --- .../src/api/navigation.ts | 23 +++++++++++++++++++ 1 file changed, 23 insertions(+) diff --git a/packages/element-web-module-api/src/api/navigation.ts b/packages/element-web-module-api/src/api/navigation.ts index f7d60b42..1d8345c5 100644 --- a/packages/element-web-module-api/src/api/navigation.ts +++ b/packages/element-web-module-api/src/api/navigation.ts @@ -14,6 +14,22 @@ import { JSX } from "react"; */ export type LocationRenderFunction = () => JSX.Element; +/** + * The options available for changing the open behaviour. + * @public + */ +export interface OpenRoomOptions { + /** + * The list of servers to join via. + */ + viaServers?: string[]; + + /** + * Whether to automatically join the room if we are not already in it. + */ + autoJoin?: boolean; +} + /** * API methods to navigate the application. * @public @@ -33,4 +49,11 @@ export interface NavigationApi { * @alpha */ registerLocationRenderer(path: string, renderer: LocationRenderFunction): void; + + /** + * Open a room in element-web. + * @param roomIdOrAlias - id/alias of the room to open + * @param opts - Options to control the open action, see {@link OpenRoomOptions} + */ + openRoom(roomIdOrAlias: string, opts?: OpenRoomOptions): void; } From b58b5ecfe39c346ef259e284c1eb898ab9a80dd2 Mon Sep 17 00:00:00 2001 From: R Midhun Suresh Date: Tue, 28 Oct 2025 16:36:39 +0530 Subject: [PATCH 2/2] Update doc --- .../element-web-module-api/element-web-module-api.api.md | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/packages/element-web-module-api/element-web-module-api.api.md b/packages/element-web-module-api/element-web-module-api.api.md index 2d341fde..258573da 100644 --- a/packages/element-web-module-api/element-web-module-api.api.md +++ b/packages/element-web-module-api/element-web-module-api.api.md @@ -289,11 +289,18 @@ export class ModuleLoader { // @public export interface NavigationApi { + openRoom(roomIdOrAlias: string, opts?: OpenRoomOptions): void; // @alpha registerLocationRenderer(path: string, renderer: LocationRenderFunction): void; toMatrixToLink(link: string, join?: boolean): Promise; } +// @public +export interface OpenRoomOptions { + autoJoin?: boolean; + viaServers?: string[]; +} + // @alpha export type OriginalMessageComponentProps = { showUrlPreview?: boolean;