Open DMs during sync catch-up instead of blocking on parent maps.
Prefer the direct route for m.direct rooms and allow joined space children before roomToParents finishes backfilling.
This commit is contained in:
@@ -103,6 +103,23 @@ export const useBindRoomToParentsAtom = (
|
||||
setRoomToParents({ type: 'DELETE', roomId: childId });
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
// Create type can arrive after the room is already in the store. Without this,
|
||||
// spaces are skipped on INITIALIZE (isSpace false) and children stay unmapped
|
||||
// until an unrelated SpaceChild event fires — DMs/channels look listed but
|
||||
// SpaceRouteRoomProvider blocks on missing roomToParents.
|
||||
if (mEvent.getType() === StateEvent.RoomCreate) {
|
||||
const roomId = mEvent.getRoomId();
|
||||
const room = roomId ? mx.getRoom(roomId) : null;
|
||||
if (room && isSpace(room) && room.getMyMembership() !== Membership.Invite) {
|
||||
setRoomToParents({
|
||||
type: 'PUT',
|
||||
parent: room.roomId,
|
||||
children: getSpaceChildren(room),
|
||||
});
|
||||
}
|
||||
}
|
||||
};
|
||||
|
||||
|
||||
Reference in New Issue
Block a user