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