Uses array for completions to improve reactivity

Changes the `allCompletions` computed property to return an array instead of a Map.
This improves reactivity in the component that uses it, as Vue can more efficiently track changes in an array.
Also simplifies the pubkey extraction process.
This commit is contained in:
padreug 2025-10-21 23:05:38 +02:00
parent 5033a7155c
commit 5171b24ba3
2 changed files with 6 additions and 7 deletions

View file

@ -144,11 +144,9 @@ watch(todaysScheduledEvents, async (events) => {
// Watch for new completions and fetch profiles for completers // Watch for new completions and fetch profiles for completers
watch(allCompletions, async (completions) => { watch(allCompletions, async (completions) => {
if (completions.size > 0) { if (completions.length > 0) {
const pubkeys = [...completions.values()].map(c => c.pubkey) const pubkeys = completions.map(c => c.pubkey)
if (pubkeys.length > 0) { await fetchProfiles(pubkeys)
await fetchProfiles(pubkeys)
}
} }
}, { immediate: true }) }, { immediate: true })

View file

@ -125,10 +125,11 @@ export function useScheduledEvents() {
}) })
/** /**
* Get all completions (reactive) * Get all completions (reactive) - returns array for better reactivity
*/ */
const allCompletions = computed(() => { const allCompletions = computed(() => {
return scheduledEventService?.completions ?? new Map() if (!scheduledEventService?.completions) return []
return Array.from(scheduledEventService.completions.values())
}) })
return { return {