From 62d998b4f82b0bc65bbed21117637b2dc8bc2698 Mon Sep 17 00:00:00 2001 From: Arman Date: Fri, 29 Jul 2022 15:06:01 +0200 Subject: [PATCH 001/118] feat: poc for email native error handling --- src/lib/elements/forms/form.svelte | 2 +- src/lib/elements/forms/inputEmail.svelte | 19 +++- .../[project]/users/user/[user]/index.svelte | 91 ++++++++----------- 3 files changed, 59 insertions(+), 53 deletions(-) diff --git a/src/lib/elements/forms/form.svelte b/src/lib/elements/forms/form.svelte index aae39a36e..4abbd5d98 100644 --- a/src/lib/elements/forms/form.svelte +++ b/src/lib/elements/forms/form.svelte @@ -1,3 +1,3 @@ -
+ console.log(e)} on:submit|preventDefault> diff --git a/src/lib/elements/forms/inputEmail.svelte b/src/lib/elements/forms/inputEmail.svelte index c5bbd4f73..f8370ebcc 100644 --- a/src/lib/elements/forms/inputEmail.svelte +++ b/src/lib/elements/forms/inputEmail.svelte @@ -1,6 +1,6 @@
+ {#if showHelper} + {errorMessage} + {/if}
diff --git a/src/routes/console/[project]/users/user/[user]/index.svelte b/src/routes/console/[project]/users/user/[user]/index.svelte index c7cf5a401..27082a32e 100644 --- a/src/routes/console/[project]/users/user/[user]/index.svelte +++ b/src/routes/console/[project]/users/user/[user]/index.svelte @@ -5,11 +5,11 @@ import { Pill } from '$lib/elements'; import { Button, + Form, InputText, InputEmail, InputPassword, - InputPhone, - Helper + InputPhone } from '$lib/elements/forms'; import { Container } from '$lib/layout'; import { sdkForProject } from '$lib/stores/sdk'; @@ -25,10 +25,8 @@ arePrefsDisabled = false; } } + let showDelete = false; - let showError: false | 'name' | 'email' | 'phone' | 'password' = false; - let errorMessage = 'Something went wrong'; - let errorType: 'error' | 'warning' | 'success' = 'error'; let userName: string = null, userEmail: string = null, userPhone: string = null, @@ -50,12 +48,6 @@ const getAvatar = (name: string) => sdkForProject.avatars.getInitials(name, 48, 48).toString(); - function addError(location: typeof showError, message: string, type: typeof errorType) { - showError = location; - errorMessage = message; - errorType = type; - } - async function updateVerificationEmail() { try { await sdkForProject.users.updateEmailVerification($user.$id, !$user.emailVerification); @@ -109,52 +101,60 @@ try { await sdkForProject.users.updateName($user.$id, userName); $user.name = userName; - showError = false; addNotification({ message: 'Name has been updated', type: 'success' }); } catch (error) { - addError('name', error.message, 'error'); + addNotification({ + message: error.message, + type: 'error' + }); } } async function updateEmail() { try { await sdkForProject.users.updateEmail($user.$id, userEmail); $user.email = userEmail; - showError = false; addNotification({ message: 'Email has been updated', type: 'success' }); } catch (error) { - addError('email', error.message, 'error'); + addNotification({ + message: error.message, + type: 'error' + }); } } async function updatePhone() { try { await sdkForProject.users.updatePhone($user.$id, userPhone); $user.phone = userPhone; - showError = false; addNotification({ message: 'Phone has been updated', type: 'success' }); } catch (error) { - addError('phone', error.message, 'error'); + addNotification({ + message: error.message, + type: 'error' + }); } } async function updatePassword() { try { await sdkForProject.users.updatePassword($user.$id, newPassword); newPassword = null; - showError = false; addNotification({ message: 'Password has been updated', type: 'success' }); } catch (error) { - addError('password', error.message, 'error'); + addNotification({ + message: error.message, + type: 'error' + }); } } @@ -283,9 +283,6 @@ placeholder="Enter name" autocomplete={false} bind:value={userName} /> - {#if showError === 'name'} - {errorMessage} - {/if} @@ -297,30 +294,28 @@ }}>Update - -
Update Email
- -
    - - {#if showError === 'email'} - {errorMessage} - {/if} -
-
- - - -
+
+ +
Update Email
+ +
    + +
+
+ + + + +
+
+
Update Phone
@@ -331,9 +326,6 @@ placeholder="Enter phone number" autocomplete={false} bind:value={userPhone} /> - {#if showError === 'phone'} - {errorMessage} - {/if} @@ -363,9 +355,6 @@ meter={false} showPasswordButton={true} bind:value={newPassword} /> - {#if showError === 'password'} - {errorMessage} - {/if} From 3ed1463a42b8a11db5df5efcfc0b92c5eea7ffcf Mon Sep 17 00:00:00 2001 From: Arman Date: Wed, 3 Aug 2022 10:42:36 +0200 Subject: [PATCH 002/118] feat: add helpers to inputs --- src/lib/elements/forms/helper.svelte | 12 +++++++++--- src/lib/elements/forms/inputEmail.svelte | 1 - src/lib/elements/forms/inputNumber.svelte | 18 +++++++++++++++++- src/lib/elements/forms/inputPassword.svelte | 18 +++++++++++++++++- src/lib/elements/forms/inputPhone.svelte | 18 +++++++++++++++++- src/lib/elements/forms/inputText.svelte | 18 +++++++++++++++++- src/lib/elements/forms/inputTextarea.svelte | 18 +++++++++++++++++- 7 files changed, 94 insertions(+), 9 deletions(-) diff --git a/src/lib/elements/forms/helper.svelte b/src/lib/elements/forms/helper.svelte index b79019a53..c60baab65 100644 --- a/src/lib/elements/forms/helper.svelte +++ b/src/lib/elements/forms/helper.svelte @@ -1,8 +1,14 @@ -
  • +

    {#if icon !== ''}

  • +

    diff --git a/src/lib/elements/forms/inputEmail.svelte b/src/lib/elements/forms/inputEmail.svelte index f8370ebcc..b935ecc76 100644 --- a/src/lib/elements/forms/inputEmail.svelte +++ b/src/lib/elements/forms/inputEmail.svelte @@ -13,7 +13,6 @@ export let autocomplete = false; export let errorMessage = 'Your email should be formatted as: name@example.com'; export let errorType: false | 'success' | 'warning' | 'error' = 'warning'; - export let showHelper = false; let element: HTMLInputElement; diff --git a/src/lib/elements/forms/inputNumber.svelte b/src/lib/elements/forms/inputNumber.svelte index 589296360..f6d3691b9 100644 --- a/src/lib/elements/forms/inputNumber.svelte +++ b/src/lib/elements/forms/inputNumber.svelte @@ -1,6 +1,6 @@
    + {#if showHelper} + {errorMessage} + {/if}
    diff --git a/src/lib/elements/forms/inputPassword.svelte b/src/lib/elements/forms/inputPassword.svelte index 5140ca435..7a69e54e4 100644 --- a/src/lib/elements/forms/inputPassword.svelte +++ b/src/lib/elements/forms/inputPassword.svelte @@ -1,6 +1,6 @@ @@ -31,6 +42,7 @@
    {#if showInPlainText} {:else} {/if}
    + {#if showHelper} + {errorMessage} + {/if} diff --git a/src/lib/elements/forms/inputPhone.svelte b/src/lib/elements/forms/inputPhone.svelte index e0b2dfaf1..d8a0665cc 100644 --- a/src/lib/elements/forms/inputPhone.svelte +++ b/src/lib/elements/forms/inputPhone.svelte @@ -1,6 +1,6 @@
    + {#if showHelper} + {errorMessage} + {/if}
    diff --git a/src/lib/elements/forms/inputText.svelte b/src/lib/elements/forms/inputText.svelte index f106c6a91..826d02a92 100644 --- a/src/lib/elements/forms/inputText.svelte +++ b/src/lib/elements/forms/inputText.svelte @@ -1,6 +1,6 @@
    + {#if showHelper} + {errorMessage} + {/if}
    diff --git a/src/lib/elements/forms/inputTextarea.svelte b/src/lib/elements/forms/inputTextarea.svelte index 7c892d234..6d084346e 100644 --- a/src/lib/elements/forms/inputTextarea.svelte +++ b/src/lib/elements/forms/inputTextarea.svelte @@ -1,6 +1,6 @@