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