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