diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte
index 741fee68f5..75c69a440b 100644
--- a/frontend/src/lib/components/AddUser.svelte
+++ b/frontend/src/lib/components/AddUser.svelte
@@ -11,6 +11,7 @@
import ToggleButton from './common/toggleButton-v2/ToggleButton.svelte'
import { UserPlus } from 'lucide-svelte'
import Select from './select/Select.svelte'
+ import TextInput from './text_input/TextInput.svelte'
const dispatch = createEventDispatcher()
@@ -93,6 +94,12 @@
dispatch('new')
}
+ let emailError = $derived.by(() => {
+ if (!email) return undefined
+ const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
+ return emailRegex.test(email) ? undefined : 'Please enter a valid email address'
+ })
+
let selected: 'operator' | 'developer' | 'admin' = $state('developer')
@@ -117,14 +124,18 @@
email = v
}}
disablePortal={true}
+ error={!!emailError}
/>
{:else}
-
+
+ {/if}
+ {#if emailError}
+ {emailError}
{/if}
{#if !automateUsernameCreation}
Username
-
+
{/if}
Role
@@ -161,7 +172,7 @@
username = undefined
})
}}
- disabled={email === undefined || (!automateUsernameCreation && username === undefined)}
+ disabled={email === undefined || !!emailError || (!automateUsernameCreation && username === undefined)}
>
Add