createTimeline: fix the mutate won't work

This commit is contained in:
thislight 2024-11-10 16:42:37 +08:00
parent 44c9e55928
commit 23dc34dbbf
No known key found for this signature in database
GPG key ID: FCFE5192241CCD4E

View file

@ -288,11 +288,13 @@ export function createTimeline<
} }
}); });
untrack(() => {
for (const status of chk.chunk) { for (const status of chk.chunk) {
const node = untrack(() => lookup.get(status.id))!; const node = lookup.get(status.id)!;
const parent = untrack(() => const parent = status.inReplyToId
status.inReplyToId ? lookup.get(status.inReplyToId) : undefined, ? lookup.get(status.inReplyToId)
); : undefined;
if (parent) { if (parent) {
const children = parent.children ?? []; const children = parent.children ?? [];
if (!children.find((x) => x.value.id == status.id)) { if (!children.find((x) => x.value.id == status.id)) {
@ -302,6 +304,7 @@ export function createTimeline<
node.parent = parent; node.parent = parent;
} }
} }
});
const nThreadIds = chk.chunk const nThreadIds = chk.chunk
.filter((x, i) => !existence[i]) .filter((x, i) => !existence[i])
@ -314,11 +317,13 @@ export function createTimeline<
setThreads((threads) => [...nThreadIds, ...threads]); setThreads((threads) => [...nThreadIds, ...threads]);
} }
untrack(() => {
setThreads((threads) => setThreads((threads) =>
threads.filter((id) => (lookup.get(id)!.children?.length ?? 0) === 0), threads.filter((id) => (lookup.get(id)!.children?.length ?? 0) === 0),
); );
}); });
}); });
});
return [ return [
{ {