From 3393329ca82e158cbfc2c09de22b796c0b95c630 Mon Sep 17 00:00:00 2001 From: Harsh Mahajan <127186841+HarshMN2345@users.noreply.github.com> Date: Tue, 30 Sep 2025 20:31:31 +0530 Subject: [PATCH] Fix topics modal target counts based on provider typr and resolve double-click issue in topics selection using derived selection state --- .../messaging/topicsModal.svelte | 24 +++++++++++++++---- 1 file changed, 20 insertions(+), 4 deletions(-) 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 - +