diff --git a/src/routes/(console)/project-[region]-[project]/messaging/topicsModal.svelte b/src/routes/(console)/project-[region]-[project]/messaging/topicsModal.svelte index bd24b5cd3..283020da6 100644 --- a/src/routes/(console)/project-[region]-[project]/messaging/topicsModal.svelte +++ b/src/routes/(console)/project-[region]-[project]/messaging/topicsModal.svelte @@ -4,7 +4,6 @@ import { sdk } from '$lib/stores/sdk'; import { MessagingProviderType, type Models, Query } from '@appwrite.io/console'; import { createEventDispatcher } from 'svelte'; - import { getTotal } from './wizard/store'; import { Badge, Card, @@ -33,6 +32,19 @@ let emptyTopicsExists = false; + function getTopicTotal(topic: Models.Topic): number { + switch (providerType) { + case MessagingProviderType.Email: + return topic.emailTotal; + case MessagingProviderType.Sms: + return topic.smsTotal; + case MessagingProviderType.Push: + return topic.pushTotal; + default: + return 0; + } + } + function reset() { offset = 0; search = ''; @@ -105,6 +117,10 @@ $: if (show) { selected = topicsById; } + + $: topicSelectionStates = Object.fromEntries( + Object.keys(topicResultsById).map((id) => [id, !!selected[id]]) + ); @@ -128,11 +144,11 @@ id={topicId} label={topic.name} disabled={!!topicsById[topicId]} - checked={!!selected[topicId]} + checked={topicSelectionStates[topicId] || false} on:change={(event) => onTopicSelection(event, topic)}> - ({getTotal(topic)} targets) + ({getTopicTotal(topic)} targets) @@ -174,7 +190,7 @@ Topics selected - +