diff --git a/frontend/src/lib/components/AddUser.svelte b/frontend/src/lib/components/AddUser.svelte
index 6ee9cd25bd..1fe971f8bf 100644
--- a/frontend/src/lib/components/AddUser.svelte
+++ b/frontend/src/lib/components/AddUser.svelte
@@ -105,8 +105,9 @@
dispatch('new')
}
+ let emailTouched = $state(false)
let emailError = $derived.by(() => {
- if (!email) return undefined
+ if (!email || !emailTouched) return undefined
const emailRegex = /^[^\s@]+@[^\s@]+\.[^\s@]+$/
return emailRegex.test(email) ? undefined : 'Please enter a valid email address'
})
@@ -133,6 +134,7 @@
loading={emailsLoading}
disablePortal={true}
error={!!emailError}
+ onClose={() => (emailTouched = true)}
/>
{:else}
{/if}
-
+ {#if emailError}
+
+ {/if}
{#if !automateUsernameCreation}
Username
diff --git a/frontend/src/lib/components/select/AutocompleteSelect.svelte b/frontend/src/lib/components/select/AutocompleteSelect.svelte
index 0df15bb532..a387c638ee 100644
--- a/frontend/src/lib/components/select/AutocompleteSelect.svelte
+++ b/frontend/src/lib/components/select/AutocompleteSelect.svelte
@@ -34,6 +34,7 @@
transformInputSelectedText,
onFocus,
onBlur,
+ onClose,
onClear
}: {
items?: Item[]
@@ -54,6 +55,7 @@
transformInputSelectedText?: (text: string) => string
onFocus?: () => void
onBlur?: () => void
+ onClose?: () => void
onClear?: () => void
} = $props()
@@ -92,6 +94,7 @@
$effect(() => {
if (!open) {
filterText = ''
+ onClose?.()
} else {
untrack(() => {
if (rawLabel) {