Estate: narrow parentId before the Space route lookup; prettier; ignore harness
Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
parent
1dfe38a33d
commit
6eae929cd9
3 changed files with 22 additions and 11 deletions
|
|
@ -2,4 +2,5 @@ dist
|
|||
node_modules
|
||||
package.json
|
||||
package-lock.json
|
||||
LICENSEharness
|
||||
LICENSE
|
||||
harness
|
||||
|
|
|
|||
|
|
@ -53,7 +53,7 @@ const estateRoomPath = (mx: ReturnType<typeof useMatrixClient>, room: EstateRoom
|
|||
const alias = getCanonicalAliasOrRoomId(mx, room.roomId);
|
||||
if (room.direct) return getDirectRoomPath(alias);
|
||||
// A Space the user has not joined has no Space route; the room still resolves from Home.
|
||||
if (mx.getRoom(room.parentId)?.getMyMembership() === 'join') {
|
||||
if (room.parentId && mx.getRoom(room.parentId)?.getMyMembership() === 'join') {
|
||||
return getSpaceRoomPath(getCanonicalAliasOrRoomId(mx, room.parentId), alias);
|
||||
}
|
||||
return getHomeRoomPath(alias);
|
||||
|
|
|
|||
|
|
@ -196,12 +196,10 @@ describe('buildEstate', () => {
|
|||
input({
|
||||
hierarchy: [
|
||||
...hierarchy.slice(0, 2),
|
||||
space(
|
||||
PROJECTS,
|
||||
'Projects',
|
||||
['!cultlib:gamecult.org', '!aeth:gamecult.org'],
|
||||
{ '!cultlib:gamecult.org': 'eureka', '!aeth:gamecult.org': 'eureka' }
|
||||
),
|
||||
space(PROJECTS, 'Projects', ['!cultlib:gamecult.org', '!aeth:gamecult.org'], {
|
||||
'!cultlib:gamecult.org': 'eureka',
|
||||
'!aeth:gamecult.org': 'eureka',
|
||||
}),
|
||||
...hierarchy.slice(3, 5),
|
||||
],
|
||||
})
|
||||
|
|
@ -268,10 +266,20 @@ describe('Elsewhere', () => {
|
|||
);
|
||||
|
||||
it('lists a joined non-DM room the hierarchy does not return, named from the store', () => {
|
||||
const t = strays({ strayRoomIds: ['!adhoc:x'], roomNames: new Map([['!adhoc:x', 'Meeting']]) })!;
|
||||
const t = strays({
|
||||
strayRoomIds: ['!adhoc:x'],
|
||||
roomNames: new Map([['!adhoc:x', 'Meeting']]),
|
||||
})!;
|
||||
expect(t.label).toBe('Elsewhere');
|
||||
expect(t.loose).toEqual([
|
||||
{ roomId: '!adhoc:x', name: 'Meeting', state: 'joined', via: [], parentId: null, direct: false },
|
||||
{
|
||||
roomId: '!adhoc:x',
|
||||
name: 'Meeting',
|
||||
state: 'joined',
|
||||
via: [],
|
||||
parentId: null,
|
||||
direct: false,
|
||||
},
|
||||
]);
|
||||
});
|
||||
|
||||
|
|
@ -292,7 +300,9 @@ describe('Elsewhere', () => {
|
|||
});
|
||||
|
||||
it('never lists a room the user has not joined', () => {
|
||||
expect(strays({ membership: new Map([['!adhoc:x', 'invite']]), strayRoomIds: ['!adhoc:x'] })).toBeUndefined();
|
||||
expect(
|
||||
strays({ membership: new Map([['!adhoc:x', 'invite']]), strayRoomIds: ['!adhoc:x'] })
|
||||
).toBeUndefined();
|
||||
});
|
||||
|
||||
it('is absent when there are no strays', () => {
|
||||
|
|
|
|||
Loading…
Reference in a new issue