@@ -89,7 +89,7 @@ interface IProps {
8989
9090interface IState {
9191 phase : Phase ;
92- createdRooms ?: boolean ; // internal state for the creation wizard
92+ firstRoomId ?: boolean ; // internal state for the creation wizard
9393 showRightPanel : boolean ;
9494 myMembership : string ;
9595}
@@ -508,7 +508,7 @@ const SpaceSetupFirstRooms = ({ space, title, description, onFinished }) => {
508508 try {
509509 const isPublic = space . getJoinRule ( ) === JoinRule . Public ;
510510 const filteredRoomNames = roomNames . map ( name => name . trim ( ) ) . filter ( Boolean ) ;
511- await Promise . all ( filteredRoomNames . map ( name => {
511+ const roomIds = await Promise . all ( filteredRoomNames . map ( name => {
512512 return createRoom ( {
513513 createOpts : {
514514 preset : isPublic ? Preset . PublicChat : Preset . PrivateChat ,
@@ -523,7 +523,7 @@ const SpaceSetupFirstRooms = ({ space, title, description, onFinished }) => {
523523 suggested : true ,
524524 } ) ;
525525 } ) ) ;
526- onFinished ( filteredRoomNames . length > 0 ) ;
526+ onFinished ( roomIds [ 0 ] ) ;
527527 } catch ( e ) {
528528 console . error ( "Failed to create initial space rooms" , e ) ;
529529 setError ( _t ( "Failed to create initial space rooms" ) ) ;
@@ -533,7 +533,7 @@ const SpaceSetupFirstRooms = ({ space, title, description, onFinished }) => {
533533
534534 let onClick = ( ev ) => {
535535 ev . preventDefault ( ) ;
536- onFinished ( false ) ;
536+ onFinished ( ) ;
537537 } ;
538538 let buttonLabel = _t ( "Skip for now" ) ;
539539 if ( roomNames . some ( name => name . trim ( ) ) ) {
@@ -588,7 +588,7 @@ const SpaceAddExistingRooms = ({ space, onFinished }) => {
588588 </ div > ;
589589} ;
590590
591- const SpaceSetupPublicShare = ( { justCreatedOpts, space, onFinished, createdRooms } ) => {
591+ const SpaceSetupPublicShare = ( { justCreatedOpts, space, onFinished, firstRoomId } ) => {
592592 return < div className = "mx_SpaceRoomView_publicShare" >
593593 < h1 > { _t ( "Share %(name)s" , {
594594 name : justCreatedOpts ?. createOpts ?. name || space . name ,
@@ -601,7 +601,7 @@ const SpaceSetupPublicShare = ({ justCreatedOpts, space, onFinished, createdRoom
601601
602602 < div className = "mx_SpaceRoomView_buttons" >
603603 < AccessibleButton kind = "primary" onClick = { onFinished } >
604- { createdRooms ? _t ( "Go to my first room" ) : _t ( "Go to my space" ) }
604+ { firstRoomId ? _t ( "Go to my first room" ) : _t ( "Go to my space" ) }
605605 </ AccessibleButton >
606606 </ div >
607607 </ div > ;
@@ -844,35 +844,10 @@ export default class SpaceRoomView extends React.PureComponent<IProps, IState> {
844844 } ;
845845
846846 private goToFirstRoom = async ( ) => {
847- // TODO actually go to the first room
848-
849- const childRooms = SpaceStore . instance . getChildRooms ( this . props . space . roomId ) ;
850- if ( childRooms . length ) {
851- const room = childRooms [ 0 ] ;
847+ if ( this . state . firstRoomId ) {
852848 defaultDispatcher . dispatch ( {
853849 action : "view_room" ,
854- room_id : room . roomId ,
855- } ) ;
856- return ;
857- }
858-
859- let suggestedRooms = SpaceStore . instance . suggestedRooms ;
860- if ( SpaceStore . instance . activeSpace !== this . props . space ) {
861- // the space store has the suggested rooms loaded for a different space, fetch the right ones
862- suggestedRooms = ( await SpaceStore . instance . fetchSuggestedRooms ( this . props . space , 1 ) ) ;
863- }
864-
865- if ( suggestedRooms . length ) {
866- const room = suggestedRooms [ 0 ] ;
867- defaultDispatcher . dispatch ( {
868- action : "view_room" ,
869- room_id : room . room_id ,
870- room_alias : room . canonical_alias || room . aliases ?. [ 0 ] ,
871- via_servers : room . viaServers ,
872- oobData : {
873- avatarUrl : room . avatar_url ,
874- name : room . name || room . canonical_alias || room . aliases ?. [ 0 ] || _t ( "Empty room" ) ,
875- } ,
850+ room_id : this . state . firstRoomId ,
876851 } ) ;
877852 return ;
878853 }
@@ -902,14 +877,14 @@ export default class SpaceRoomView extends React.PureComponent<IProps, IState> {
902877 _t ( "Let's create a room for each of them." ) + "\n" +
903878 _t ( "You can add more later too, including already existing ones." )
904879 }
905- onFinished = { ( createdRooms : boolean ) => this . setState ( { phase : Phase . PublicShare , createdRooms } ) }
880+ onFinished = { ( firstRoomId : boolean ) => this . setState ( { phase : Phase . PublicShare , firstRoomId } ) }
906881 /> ;
907882 case Phase . PublicShare :
908883 return < SpaceSetupPublicShare
909884 justCreatedOpts = { this . props . justCreatedOpts }
910885 space = { this . props . space }
911886 onFinished = { this . goToFirstRoom }
912- createdRooms = { this . state . createdRooms }
887+ firstRoomId = { this . state . firstRoomId }
913888 /> ;
914889
915890 case Phase . PrivateScope :
@@ -931,7 +906,7 @@ export default class SpaceRoomView extends React.PureComponent<IProps, IState> {
931906 title = { _t ( "What projects are you working on?" ) }
932907 description = { _t ( "We'll create rooms for each of them. " +
933908 "You can add more later too, including already existing ones." ) }
934- onFinished = { ( createdRooms : boolean ) => this . setState ( { phase : Phase . Landing , createdRooms } ) }
909+ onFinished = { ( firstRoomId : boolean ) => this . setState ( { phase : Phase . Landing , firstRoomId } ) }
935910 /> ;
936911 case Phase . PrivateExistingRooms :
937912 return < SpaceAddExistingRooms
0 commit comments