Skip to content

Commit af51df5

Browse files
committed
Upgrade room based on current version and server default
Fixes cinnyapp#2649
1 parent 650ed04 commit af51df5

1 file changed

Lines changed: 14 additions & 4 deletions

File tree

src/app/features/common-settings/general/RoomUpgrade.tsx

Lines changed: 14 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -46,13 +46,23 @@ function RoomUpgradeDialog({ requestClose }: { requestClose: () => void }) {
4646
const alive = useAlive();
4747
const creators = useRoomCreators(room);
4848

49+
const createContent = useStateEvent(
50+
room,
51+
StateEvent.RoomCreate
52+
)?.getContent<IRoomCreateContent>();
53+
const currentRoomVersion = createContent?.room_version ?? '1';
54+
4955
const capabilities = useCapabilities();
5056
const roomVersions = capabilities['m.room_versions'];
51-
const [selectedRoomVersion, selectRoomVersion] = useState(roomVersions?.default ?? '1');
57+
const defaultVersion = roomVersions?.default ?? '1';
58+
const [selectedRoomVersion, selectRoomVersion] = useState(currentRoomVersion);
59+
5260
useEffect(() => {
53-
// capabilities load async
54-
selectRoomVersion(roomVersions?.default ?? '1');
55-
}, [roomVersions?.default]);
61+
// capabilities load async; bump selection to server default if it's higher
62+
if (parseInt(defaultVersion, 10) > parseInt(currentRoomVersion, 10)) {
63+
selectRoomVersion(defaultVersion);
64+
}
65+
}, [defaultVersion, currentRoomVersion]);
5666

5767
const allowAdditionalCreators = creatorsSupported(selectedRoomVersion);
5868
const { additionalCreators, addAdditionalCreator, removeAdditionalCreator } =

0 commit comments

Comments
 (0)