@@ -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