Fix crashes in when opening Bridges in room settings (#33137)

* use SDKContext for room settings dialog to avoid crash #33107

* format with prettier

* add SDKContext to RoomSettingsDialog test
This commit is contained in:
adis veletanlic
2026-04-17 11:36:40 +00:00
committed by GitHub
parent 1044a95687
commit 73d4b63ada
3 changed files with 28 additions and 17 deletions
@@ -42,6 +42,7 @@ import { type NonEmptyArray } from "../../../@types/common";
import { PollHistoryTab } from "../settings/tabs/room/PollHistoryTab";
import ErrorBoundary from "../elements/ErrorBoundary";
import { PeopleRoomSettingsTab } from "../settings/tabs/room/PeopleRoomSettingsTab";
import { SDKContext, type SdkContextClass } from "../../../contexts/SDKContext";
export const enum RoomSettingsTab {
General = "ROOM_GENERAL_TAB",
@@ -59,6 +60,7 @@ interface IProps {
roomId: string;
onFinished: (success?: boolean) => void;
initialTabId?: RoomSettingsTab;
sdkContext: SdkContextClass;
}
interface IState {
@@ -238,21 +240,23 @@ class RoomSettingsDialog extends React.Component<IProps, IState> {
public render(): React.ReactNode {
const roomName = this.state.room.name;
return (
<BaseDialog
className="mx_RoomSettingsDialog"
hasCancel={true}
onFinished={this.props.onFinished}
title={_t("room_settings|title", { roomName })}
>
<div className="mx_SettingsDialog_content">
<TabbedView
tabs={this.getTabs()}
activeTabId={this.state.activeTabId}
screenName="RoomSettings"
onChange={this.onTabChange}
/>
</div>
</BaseDialog>
<SDKContext.Provider value={this.props.sdkContext}>
<BaseDialog
className="mx_RoomSettingsDialog"
hasCancel={true}
onFinished={this.props.onFinished}
title={_t("room_settings|title", { roomName })}
>
<div className="mx_SettingsDialog_content">
<TabbedView
tabs={this.getTabs()}
activeTabId={this.state.activeTabId}
screenName="RoomSettings"
onChange={this.onTabChange}
/>
</div>
</BaseDialog>
</SDKContext.Provider>
);
}
}
+1
View File
@@ -57,6 +57,7 @@ export class DialogOpener {
{
roomId: payload.room_id || SdkContextClass.instance.roomViewStore.getRoomId(),
initialTabId: payload.initial_tab_id,
sdkContext: SdkContextClass.instance,
},
/*className=*/ undefined,
/*isPriority=*/ false,