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 4bf1da7331
commit abaf7f2f5b
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(allCompletions, async (completions) => {
if (completions.size > 0) {
const pubkeys = [...completions.values()].map(c => c.pubkey)
if (pubkeys.length > 0) {
await fetchProfiles(pubkeys)
}
if (completions.length > 0) {
const pubkeys = completions.map(c => c.pubkey)
await fetchProfiles(pubkeys)
}
}, { 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(() => {
return scheduledEventService?.completions ?? new Map()
if (!scheduledEventService?.completions) return []
return Array.from(scheduledEventService.completions.values())
})
return {