diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte
index 8968e56f4b..62e82c2a50 100644
--- a/frontend/src/lib/components/AddUser.svelte
+++ b/frontend/src/lib/components/AddUser.svelte
@@ -14,6 +14,8 @@
const dispatch = createEventDispatcher()
+ let { workspaceEmails = [] }: { workspaceEmails?: string[] } = $props()
+
let email: string | undefined = $state()
let username: string | undefined = $state()
@@ -32,15 +34,22 @@
}
getAutomateUsernameCreationSetting()
- let instanceEmails: { label: string; value: string }[] | undefined = $state(undefined)
+ let allInstanceEmails: string[] | undefined = $state(undefined)
+
+ let instanceEmails = $derived.by(() => {
+ if (!allInstanceEmails) return undefined
+ const workspaceSet = new Set(workspaceEmails)
+ return allInstanceEmails
+ .filter((e) => !workspaceSet.has(e))
+ .map((e) => ({ label: e, value: e }))
+ })
async function loadInstanceEmails() {
if (isCloudHosted()) return
try {
- const emails = await UserService.listInstanceEmails()
- instanceEmails = emails.map((e) => ({ label: e, value: e }))
+ allInstanceEmails = await UserService.listInstanceEmails()
} catch {
- instanceEmails = undefined
+ allInstanceEmails = undefined
}
}
loadInstanceEmails()
@@ -110,12 +119,7 @@
disablePortal={true}
/>
{:else}
-
+
{/if}
{#if !automateUsernameCreation}
diff --git a/frontend/src/lib/components/settings/WorkspaceUserSettings.svelte b/frontend/src/lib/components/settings/WorkspaceUserSettings.svelte
index 615b8dfb0c..6b91a86e25 100644
--- a/frontend/src/lib/components/settings/WorkspaceUserSettings.svelte
+++ b/frontend/src/lib/components/settings/WorkspaceUserSettings.svelte
@@ -724,6 +724,7 @@
{/if}
u.email) ?? []}
on:new={() => {
listUsers()
listInvites()