diff --git a/.gitignore b/.gitignore index 46763dacc..183c55563 100644 --- a/.gitignore +++ b/.gitignore @@ -13,3 +13,5 @@ node_modules node_modules/ dist/ .vercel + +*.swp \ No newline at end of file diff --git a/src/lib/components/migrationBox.svelte b/src/lib/components/migrationBox.svelte index 8fc6c47a3..dafe098b4 100644 --- a/src/lib/components/migrationBox.svelte +++ b/src/lib/components/migrationBox.svelte @@ -80,7 +80,7 @@
{percentage}%
-
+
Importing users...
diff --git a/src/lib/components/modal.svelte b/src/lib/components/modal.svelte index c780c39b3..3801b0fb7 100644 --- a/src/lib/components/modal.svelte +++ b/src/lib/components/modal.svelte @@ -11,7 +11,7 @@ export let error: string = null; export let closable = true; export let headerDivider = true; - export let onSubmit: () => Promise | void = function () { + export let onSubmit: (e: SubmitEvent) => Promise | void = function () { return; }; diff --git a/src/lib/elements/forms/form.svelte b/src/lib/elements/forms/form.svelte index fcb58760a..8145f2c69 100644 --- a/src/lib/elements/forms/form.svelte +++ b/src/lib/elements/forms/form.svelte @@ -13,15 +13,15 @@ export let noMargin = false; export let noStyle = false; export let isModal = false; - export let onSubmit: () => Promise | void; + export let onSubmit: (e: SubmitEvent) => Promise | void; const { isSubmitting } = setContext('form', { isSubmitting: writable(false) }); - async function submit() { + async function submit(e: SubmitEvent) { isSubmitting.set(true); - await onSubmit(); + await onSubmit(e); isSubmitting.set(false); } diff --git a/src/lib/elements/forms/inputText.svelte b/src/lib/elements/forms/inputText.svelte index 28123a30f..702d6228a 100644 --- a/src/lib/elements/forms/inputText.svelte +++ b/src/lib/elements/forms/inputText.svelte @@ -8,6 +8,7 @@ export let optionalText: string | undefined = undefined; export let showLabel = true; export let id: string; + export let name: string = id; export let value = ''; export let placeholder = ''; export let required = false; @@ -29,6 +30,7 @@ }); const handleInvalid = (event: Event) => { + console.log('Invalid'); event.preventDefault(); if (element.validity.valueMissing) { @@ -39,8 +41,11 @@ error = element.validationMessage; }; - $: if (value) { - error = null; + $: { + value; + if (element?.validity?.valid) { + error = null; + } } let prevValue = ''; @@ -56,6 +61,10 @@ $: showTextCounter = !!maxlength; $: showNullCheckbox = nullable && !required; + + type $$Events = { + input: Event & { target: HTMLInputElement }; + }; @@ -66,6 +75,7 @@
+ on:invalid={handleInvalid} + on:input /> {#if showTextCounter || showNullCheckbox}
    diff --git a/src/lib/elements/forms/inputTextarea.svelte b/src/lib/elements/forms/inputTextarea.svelte index a5a096b35..8840d381d 100644 --- a/src/lib/elements/forms/inputTextarea.svelte +++ b/src/lib/elements/forms/inputTextarea.svelte @@ -7,6 +7,7 @@ export let label: string; export let showLabel = true; export let id: string; + export let name: string = id; export let value = ''; export let placeholder = ''; export let required = false; @@ -63,6 +64,7 @@