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()