refactor: sliding sync: convert to lists-as-keys rather than indexes

Sister PR to https://github.com/matrix-org/matrix-js-sdk/pull/3076
This commit is contained in:
Kegan Dougal 2023-01-18 17:19:12 +00:00
parent 4d2b27a96d
commit 21f0825703
4 changed files with 24 additions and 56 deletions

View file

@ -34,7 +34,6 @@ export const useSlidingSyncRoomSearch = (): {
const [rooms, setRooms] = useState<Room[]>([]);
const [loading, setLoading] = useState(false);
const listIndex = SlidingSyncManager.instance.getOrAllocateListIndex(SlidingSyncManager.ListSearch);
const [updateQuery, updateResult] = useLatestResult<{ term: string; limit?: number }, Room[]>(setRooms);
@ -50,14 +49,14 @@ export const useSlidingSyncRoomSearch = (): {
try {
setLoading(true);
await SlidingSyncManager.instance.ensureListRegistered(listIndex, {
await SlidingSyncManager.instance.ensureListRegistered(SlidingSyncManager.ListSearch, {
ranges: [[0, limit]],
filters: {
room_name_like: term,
},
});
const rooms = [];
const { roomIndexToRoomId } = SlidingSyncManager.instance.slidingSync.getListData(listIndex);
const { roomIndexToRoomId } = SlidingSyncManager.instance.slidingSync.getListData(SlidingSyncManager.ListSearch);
let i = 0;
while (roomIndexToRoomId[i]) {
const roomId = roomIndexToRoomId[i];
@ -78,7 +77,7 @@ export const useSlidingSyncRoomSearch = (): {
// TODO: delete the list?
}
},
[updateQuery, updateResult, listIndex],
[updateQuery, updateResult, SlidingSyncManager.ListSearch],
);
return {