From 95865e3ccbeecdd19dc3aaa60ba927f403fd2697 Mon Sep 17 00:00:00 2001 From: Darshan Date: Mon, 16 Dec 2024 16:55:47 +0530 Subject: [PATCH] add: users section. --- .../messaging/message-[message]/+layout.ts | 10 +- .../messaging/message-[message]/+page.svelte | 2 + .../message-[message]/recipients.svelte | 91 +++++++++++++++++++ 3 files changed, 102 insertions(+), 1 deletion(-) create mode 100644 src/routes/(console)/project-[project]/messaging/message-[message]/recipients.svelte diff --git a/src/routes/(console)/project-[project]/messaging/message-[message]/+layout.ts b/src/routes/(console)/project-[project]/messaging/message-[message]/+layout.ts index 7e3985ea3..637631dd9 100644 --- a/src/routes/(console)/project-[project]/messaging/message-[message]/+layout.ts +++ b/src/routes/(console)/project-[project]/messaging/message-[message]/+layout.ts @@ -41,13 +41,21 @@ export const load: LayoutLoad = async ({ params, depends }) => { }) ); - await Promise.allSettled(usersPromise); + const messageRecipients: Record> = {}; + const messageRecipientsPromise = Object.values(message.users).map((userId) => + sdk.forProject.users.get(userId).then((user) => { + messageRecipients[user.$id] = user; + }) + ); + + await Promise.allSettled([usersPromise, messageRecipientsPromise]); return { message, topicsById, targetsById, usersById, + messageRecipients, header: Header, breadcrumbs: Breadcrumbs }; 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 878c47ffd..6e299cc84 100644 --- a/src/routes/(console)/project-[project]/messaging/message-[message]/+page.svelte +++ b/src/routes/(console)/project-[project]/messaging/message-[message]/+page.svelte @@ -12,6 +12,7 @@ import { MessagingProviderType } from '@appwrite.io/console'; import UpdateTopics from './updateTopics.svelte'; import UpdateTargets from './updateTargets.svelte'; + import Recipients from './recipients.svelte'; import { onMount } from 'svelte'; export let data: PageData; @@ -34,6 +35,7 @@ {/if} + {#if $message.status !== 'processing'} {/if} diff --git a/src/routes/(console)/project-[project]/messaging/message-[message]/recipients.svelte b/src/routes/(console)/project-[project]/messaging/message-[message]/recipients.svelte new file mode 100644 index 000000000..fcce2439d --- /dev/null +++ b/src/routes/(console)/project-[project]/messaging/message-[message]/recipients.svelte @@ -0,0 +1,91 @@ + + + + Users + + {@const sum = messageRecipients.length} + {#if sum} +
+ + + Name + Identifier + + + {#each messageRecipients.slice(offset, offset + limit) as recipient (recipient.$id)} + + +
+ + {recipient.name} + +
+
+ + + {getIdentifier(recipient)} + + +
+ {/each} +
+
+
+

Total users: {messageRecipients.length}

+ +
+
+ {:else} + +
+ No users have been selected. +

+ Need a hand? Check out our + + . +

+
+
+ {/if} +
+