diff --git a/src/app/pages/client/home/Home.tsx b/src/app/pages/client/home/Home.tsx index 3ed8a39..9b95b83 100644 --- a/src/app/pages/client/home/Home.tsx +++ b/src/app/pages/client/home/Home.tsx @@ -287,9 +287,12 @@ export function Home() { const subRoomsEvent = room.currentState.getStateEvents(StateEvent.PaarrotSubRooms, ''); const subRooms = subRoomsEvent?.getContent<{ children: string[] }>()?.children ?? []; + // Filter to only joined sub-rooms + const joinedSubRooms = subRooms.filter(subRoomId => mx.getRoom(subRoomId)); + // Add sub-rooms recursively - subRooms.forEach((subRoomId, index) => { - addRoomAndSubRooms(subRoomId, depth + 1, roomId, index === subRooms.length - 1); + joinedSubRooms.forEach((subRoomId, index) => { + addRoomAndSubRooms(subRoomId, depth + 1, roomId, index === joinedSubRooms.length - 1); }); } }; diff --git a/src/app/pages/client/space/Space.tsx b/src/app/pages/client/space/Space.tsx index 3672a57..7c5e7b3 100644 --- a/src/app/pages/client/space/Space.tsx +++ b/src/app/pages/client/space/Space.tsx @@ -459,11 +459,15 @@ export function Space() { const subRoomsEvent = room.currentState.getStateEvents(StateEvent.PaarrotSubRooms, ''); const subRooms = subRoomsEvent?.getContent<{ children: string[] }>()?.children ?? []; - subRooms.forEach((subRoomId, index) => { - if (processedSubRooms.has(subRoomId)) return; + // Filter to only joined sub-rooms that haven't been processed + const joinedSubRooms = subRooms.filter(subRoomId => + !processedSubRooms.has(subRoomId) && mx.getRoom(subRoomId) + ); + + joinedSubRooms.forEach((subRoomId, index) => { processedSubRooms.add(subRoomId); - const isLast = index === subRooms.length - 1; + const isLast = index === joinedSubRooms.length - 1; const subRoom = mx.getRoom(subRoomId); if (subRoom) { // Joined sub-room