Browse Source

Track loaded addresses in a publication

master
buttercat1791 10 months ago
parent
commit
74d6b306b9
  1. 12
      src/lib/components/Publication.svelte

12
src/lib/components/Publication.svelte

@ -30,6 +30,7 @@
// TODO: Test load handling. // TODO: Test load handling.
let leaves = $state<NDKEvent[]>([]); let leaves = $state<NDKEvent[]>([]);
let loadedAddresses = $state<Set<string>>(new Set());
let isLoading = $state<boolean>(false); let isLoading = $state<boolean>(false);
let lastElementRef = $state<HTMLElement | null>(null); let lastElementRef = $state<HTMLElement | null>(null);
@ -40,10 +41,21 @@
for (let i = 0; i < count; i++) { for (let i = 0; i < count; i++) {
const nextItem = await publicationTree.next(); const nextItem = await publicationTree.next();
const nextAddress = nextItem.value?.tagAddress();
if (nextAddress && loadedAddresses.has(nextAddress)) {
continue;
}
if (nextAddress && !loadedAddresses.has(nextAddress)) {
loadedAddresses.add(nextAddress);
}
if (leaves.includes(nextItem.value) || (nextItem.done && nextItem.value === null)) { if (leaves.includes(nextItem.value) || (nextItem.done && nextItem.value === null)) {
isLoading = false; isLoading = false;
return; return;
} }
leaves.push(nextItem.value); leaves.push(nextItem.value);
} }

Loading…
Cancel
Save