@@ -131,7 +131,7 @@ impl SpaceServiceRoomList {
131
131
self . pagination_state . set ( SpaceServiceRoomListPaginationState :: Loading ) ;
132
132
133
133
let mut request = get_hierarchy:: v1:: Request :: new ( self . parent_space_id . clone ( ) ) ;
134
- request. max_depth = Some ( uint ! ( 1 ) ) ;
134
+ request. max_depth = Some ( uint ! ( 1 ) ) ; // We only want the immediate children of the space
135
135
136
136
if let PaginationToken :: HasMore ( ref token) = * self . token . lock ( ) . unwrap ( ) {
137
137
request. from = Some ( token. clone ( ) ) ;
@@ -155,15 +155,16 @@ impl SpaceServiceRoomList {
155
155
result
156
156
. rooms
157
157
. iter ( )
158
- . map ( |room| {
159
- (
160
- & room. summary ,
161
- self . client . get_room ( & room. summary . room_id ) ,
162
- room. children_state . len ( ) ,
163
- )
164
- } )
165
- . map ( |( summary, room, children_count) | {
166
- SpaceServiceRoom :: new_from_summary ( summary, room, children_count as u64 )
158
+ . flat_map ( |room| {
159
+ if room. summary . room_id == self . parent_space_id {
160
+ None
161
+ } else {
162
+ Some ( SpaceServiceRoom :: new_from_summary (
163
+ & room. summary ,
164
+ self . client . get_room ( & room. summary . room_id ) ,
165
+ room. children_state . len ( ) as u64 ,
166
+ ) )
167
+ }
167
168
} )
168
169
. collect :: < Vec < _ > > ( ) ,
169
170
) ;
@@ -238,7 +239,7 @@ mod tests {
238
239
// Paginating the room list
239
240
server
240
241
. mock_get_hierarchy ( )
241
- . ok_with_room_ids ( vec ! [ child_space_id_1, child_space_id_2] )
242
+ . ok_with_room_ids ( vec ! [ parent_space_id , child_space_id_1, child_space_id_2] )
242
243
. mount ( )
243
244
. await ;
244
245
0 commit comments