From 27713572b5cf164d11cfdcc45caba329b0f09889 Mon Sep 17 00:00:00 2001 From: Max Litruv Boonzaayer Date: Sun, 15 Mar 2026 21:52:58 +1100 Subject: [PATCH] feat: filter to only include joined sub-rooms in Home and Space components --- src/app/pages/client/home/Home.tsx | 7 +++++-- src/app/pages/client/space/Space.tsx | 10 +++++++--- 2 files changed, 12 insertions(+), 5 deletions(-) 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