Skip to content
This repository was archived by the owner on Sep 11, 2024. It is now read-only.

Commit d0d9159

Browse files
authored
Fix soft crash around space hierarchy changing between spaces (#9191)
1 parent 6f2c761 commit d0d9159

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

src/components/structures/SpaceHierarchy.tsx

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -504,7 +504,7 @@ export const useRoomHierarchy = (space: Room): {
504504
loadMore(pageSize?: number): Promise<void>;
505505
} => {
506506
const [rooms, setRooms] = useState<IHierarchyRoom[]>([]);
507-
const [hierarchy, setHierarchy] = useState<RoomHierarchy>();
507+
const [roomHierarchy, setHierarchy] = useState<RoomHierarchy>();
508508
const [error, setError] = useState<Error | undefined>();
509509

510510
const resetHierarchy = useCallback(() => {
@@ -526,15 +526,21 @@ export const useRoomHierarchy = (space: Room): {
526526
}));
527527

528528
const loadMore = useCallback(async (pageSize?: number) => {
529-
if (hierarchy.loading || !hierarchy.canLoadMore || hierarchy.noSupport || error) return;
530-
await hierarchy.load(pageSize).catch(setError);
531-
setRooms(hierarchy.rooms);
532-
}, [error, hierarchy]);
529+
if (roomHierarchy.loading || !roomHierarchy.canLoadMore || roomHierarchy.noSupport || error) return;
530+
await roomHierarchy.load(pageSize).catch(setError);
531+
setRooms(roomHierarchy.rooms);
532+
}, [error, roomHierarchy]);
533+
534+
// Only return the hierarchy if it is for the space requested
535+
let hierarchy = roomHierarchy;
536+
if (hierarchy?.root !== space) {
537+
hierarchy = undefined;
538+
}
533539

534540
return {
535541
loading: hierarchy?.loading ?? true,
536542
rooms,
537-
hierarchy: hierarchy?.root === space ? hierarchy : undefined,
543+
hierarchy,
538544
loadMore,
539545
error,
540546
};

0 commit comments

Comments
 (0)