diff --git a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte index 5e680c334f..7c8d89bab2 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/+page.svelte @@ -112,5 +112,7 @@ {/if} - + {#if $message.status !== MessageType.Processing} + + {/if} diff --git a/src/routes/console/project-[project]/messaging/message-[message]/delete.svelte b/src/routes/console/project-[project]/messaging/message-[message]/delete.svelte index 707b16c72b..4ffdf4b2d5 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/delete.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/delete.svelte @@ -2,9 +2,10 @@ import { BoxAvatar, CardGrid, Heading } from '$lib/components'; import { Button } from '$lib/elements/forms'; import { toLocaleDateTime } from '$lib/helpers/date'; - import { MessageType } from '@appwrite.io/console'; + import type { Models } from '@appwrite.io/console'; import DeleteModal from './deleteModal.svelte'; - import { message } from './store'; + + export let message: Models.Message & { data: Record }; let showDelete = false; @@ -12,32 +13,30 @@ Delete message

- The message will be permanently deleted, including all data associated with this message. - This action is irreversible. + The message will be permanently deleted{message.status === 'scheduled' + ? ', and its delivery will be canceled' + : ''}. This action is irreversible.

- {$message.data.title ?? - $message.data.subject ?? - $message.data.content ?? + {message.data.title ?? + message.data.subject ?? + message.data.content ?? 'Message'}

- Last updated: {toLocaleDateTime($message.$updatedAt)} + Last updated: {toLocaleDateTime(message.$updatedAt)}

- +
- + diff --git a/src/routes/console/project-[project]/messaging/message-[message]/deleteModal.svelte b/src/routes/console/project-[project]/messaging/message-[message]/deleteModal.svelte index 247b8d3ab5..0f6396df32 100644 --- a/src/routes/console/project-[project]/messaging/message-[message]/deleteModal.svelte +++ b/src/routes/console/project-[project]/messaging/message-[message]/deleteModal.svelte @@ -7,17 +7,33 @@ import { addNotification } from '$lib/stores/notifications'; import { sdk } from '$lib/stores/sdk'; import { Submit, trackEvent, trackError } from '$lib/actions/analytics'; - import { message } from './store'; + import type { Models } from '@appwrite.io/console'; export let show = false; + export let message: Models.Message & { data: Record }; + + let description = message.data.title ?? message.data.subject ?? message.data.content ?? ''; const deleteMessage = async () => { try { - await sdk.forProject.messaging.delete($message.$id); + await sdk.forProject.messaging.delete(message.$id); show = false; + let notificationMessage = ''; + switch (message.status) { + case 'draft': + notificationMessage = `The ${message.status} message has been deleted`; + break; + case 'scheduled': + notificationMessage = + 'The scheduled message has been deleted, and its delivery was cancelled'; + break; + default: + notificationMessage = 'The message has been deleted'; + break; + } addNotification({ type: 'success', - message: `Message has been deleted` + message: notificationMessage }); trackEvent(Submit.MessagingMessageDelete); await goto(`${base}/console/project-${$page.params.project}/messaging`); @@ -38,7 +54,27 @@ icon="exclamation" state="warning" headerDivider={false}> -

Are you sure you want to delete this message?

+

+ Are you sure you want to delete + {#if description} + {description}{:else} + this message + {/if}? +

+ +

+ {#if message.status === 'draft'} + This action is irreversible. + {:else if message.status === 'scheduled'} + This is a scheduled message. Deleting it will result in the cancellation of its + delivery. This action is irreversible. + {:else if message.status === 'sent'} + The message has already been sent. After deleting it, you will no longer see it here. + {:else if message.status === 'failed'} + The message has been sent with errors. After deleting it, you will no longer see it + here. + {/if} +