diff --git a/src/components/views/dialogs/ForwardDialog.tsx b/src/components/views/dialogs/ForwardDialog.tsx index 8b84c9380a3..af758507d2d 100644 --- a/src/components/views/dialogs/ForwardDialog.tsx +++ b/src/components/views/dialogs/ForwardDialog.tsx @@ -227,11 +227,16 @@ const ForwardDialog: React.FC = ({ matrixClient: cli, event, permalinkCr const lcQuery = query.toLowerCase(); const previewLayout = useSettingValue("layout"); + const msc3946DynamicRoomPredecessors = useSettingValue("feature_dynamic_room_predecessors"); let rooms = useMemo( () => - sortRooms(cli.getVisibleRooms().filter((room) => room.getMyMembership() === "join" && !room.isSpaceRoom())), - [cli], + sortRooms( + cli + .getVisibleRooms(msc3946DynamicRoomPredecessors) + .filter((room) => room.getMyMembership() === "join" && !room.isSpaceRoom()), + ), + [cli, msc3946DynamicRoomPredecessors], ); if (lcQuery) { diff --git a/test/components/views/dialogs/ForwardDialog-test.tsx b/test/components/views/dialogs/ForwardDialog-test.tsx index 077776499c7..748c0b193dd 100644 --- a/test/components/views/dialogs/ForwardDialog-test.tsx +++ b/test/components/views/dialogs/ForwardDialog-test.tsx @@ -36,6 +36,7 @@ import { mockPlatformPeg, } from "../../../test-utils"; import { TILE_SERVER_WK_KEY } from "../../../../src/utils/WellKnownUtils"; +import SettingsStore from "../../../../src/settings/SettingsStore"; describe("ForwardDialog", () => { const sourceRoom = "!111111111111111111:example.org"; @@ -325,4 +326,31 @@ describe("ForwardDialog", () => { ); }); }); + + describe("If the feature_dynamic_room_predecessors is not enabled", () => { + beforeEach(() => { + jest.spyOn(SettingsStore, "getValue").mockReturnValue(false); + }); + + it("Passes through the dynamic predecessor setting", async () => { + mockClient.getVisibleRooms.mockClear(); + mountForwardDialog(); + expect(mockClient.getVisibleRooms).toHaveBeenCalledWith(false); + }); + }); + + describe("If the feature_dynamic_room_predecessors is enabled", () => { + beforeEach(() => { + // Turn on feature_dynamic_room_predecessors setting + jest.spyOn(SettingsStore, "getValue").mockImplementation( + (settingName) => settingName === "feature_dynamic_room_predecessors", + ); + }); + + it("Passes through the dynamic predecessor setting", async () => { + mockClient.getVisibleRooms.mockClear(); + mountForwardDialog(); + expect(mockClient.getVisibleRooms).toHaveBeenCalledWith(true); + }); + }); });