From 0c25327e75b0934a7ce80b860bf3b7d94ad83212 Mon Sep 17 00:00:00 2001 From: deveshanim3 Date: Sat, 18 Apr 2026 01:01:39 +0530 Subject: [PATCH 1/3] fix: added logic for password requirements on signup --- src/app/components/SignUpEmail.svelte | 3 +++ 1 file changed, 3 insertions(+) diff --git a/src/app/components/SignUpEmail.svelte b/src/app/components/SignUpEmail.svelte index 44668026..824ae7bf 100644 --- a/src/app/components/SignUpEmail.svelte +++ b/src/app/components/SignUpEmail.svelte @@ -134,6 +134,9 @@ {/snippet} + {#snippet info()} + Must be at least 12 characters long. + {/snippet} -- 2.52.0 From 68deffcd65c2c6670ee9b9411d81d3afae574ba5 Mon Sep 17 00:00:00 2001 From: deveshanim3 Date: Sat, 18 Apr 2026 17:59:42 +0530 Subject: [PATCH 2/3] feat/ added progress bar for sign-up --- src/app/components/KeyDownload.svelte | 8 +++++++- src/app/components/ProgressBar.svelte | 13 +++++++++++++ src/app/components/SignUp.svelte | 14 ++++++++------ src/app/components/SignUpComplete.svelte | 8 +++++++- src/app/components/SignUpEmail.svelte | 10 ++++++++-- src/app/components/SignUpEmailConfirm.svelte | 8 +++++++- src/app/components/SignUpKey.svelte | 6 ++++-- src/app/components/SignUpProfile.svelte | 8 +++++++- 8 files changed, 61 insertions(+), 14 deletions(-) create mode 100644 src/app/components/ProgressBar.svelte diff --git a/src/app/components/KeyDownload.svelte b/src/app/components/KeyDownload.svelte index b00900a0..48657b39 100644 --- a/src/app/components/KeyDownload.svelte +++ b/src/app/components/KeyDownload.svelte @@ -15,6 +15,7 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalTitle from "@lib/components/ModalTitle.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import ProgressBar from "@app/components/ProgressBar.svelte" import {pushToast} from "@app/util/toast" import {PLATFORM_NAME} from "@app/core/state" @@ -22,9 +23,11 @@ secret: string next: () => unknown submitText?: string + step?: number + totalSteps?: number } - const {secret, next, submitText = "Continue"}: Props = $props() + const {secret, next, submitText = "Continue", step, totalSteps}: Props = $props() const back = () => history.back() @@ -109,6 +112,9 @@ + {#if step && totalSteps} + + {/if} Your Keys are Ready! diff --git a/src/app/components/ProgressBar.svelte b/src/app/components/ProgressBar.svelte new file mode 100644 index 00000000..d7ca6c52 --- /dev/null +++ b/src/app/components/ProgressBar.svelte @@ -0,0 +1,13 @@ + + +
+ {#each Array(total) as _, i} +
+
+ {/each} +
diff --git a/src/app/components/SignUp.svelte b/src/app/components/SignUp.svelte index f6a395b4..5edf81e0 100644 --- a/src/app/components/SignUp.svelte +++ b/src/app/components/SignUp.svelte @@ -62,9 +62,10 @@ const flows = { email: { - start: () => pushModal(SignUpEmail, {next: flows.email.profile}), - profile: () => pushModal(SignUpProfile, {next: flows.email.complete}), - complete: () => pushModal(SignUpComplete, {next: flows.email.finalize}), + start: () => pushModal(SignUpEmail, {next: flows.email.profile, step: 1, totalSteps: 3}), + profile: () => pushModal(SignUpProfile, {next: flows.email.complete, step: 2, totalSteps: 3}), + complete: () => + pushModal(SignUpComplete, {next: flows.email.finalize, step: 3, totalSteps: 3}), finalize: () => { const email = getKey("signup.email")! const clientOptions = getKey("signup.clientOptions")! @@ -74,9 +75,10 @@ }, }, nostr: { - start: () => pushModal(SignUpProfile, {next: flows.nostr.key}), - key: () => pushModal(SignUpKey, {next: flows.nostr.complete}), - complete: () => pushModal(SignUpComplete, {next: flows.nostr.finalize}), + start: () => pushModal(SignUpProfile, {next: flows.nostr.key, step: 1, totalSteps: 3}), + key: () => pushModal(SignUpKey, {next: flows.nostr.complete, step: 2, totalSteps: 3}), + complete: () => + pushModal(SignUpComplete, {next: flows.nostr.finalize, step: 3, totalSteps: 3}), finalize: () => { const secret = getKey("signup.secret")! diff --git a/src/app/components/SignUpComplete.svelte b/src/app/components/SignUpComplete.svelte index cd600113..312c2342 100644 --- a/src/app/components/SignUpComplete.svelte +++ b/src/app/components/SignUpComplete.svelte @@ -9,18 +9,24 @@ import ModalHeader from "@lib/components/ModalHeader.svelte" import ModalTitle from "@lib/components/ModalTitle.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import ProgressBar from "@app/components/ProgressBar.svelte" type Props = { next: () => void + step?: number + totalSteps?: number } - const {next}: Props = $props() + const {next, step, totalSteps}: Props = $props() const back = () => history.back() + {#if step && totalSteps} + + {/if} You're all set! diff --git a/src/app/components/SignUpEmail.svelte b/src/app/components/SignUpEmail.svelte index 824ae7bf..747b4309 100644 --- a/src/app/components/SignUpEmail.svelte +++ b/src/app/components/SignUpEmail.svelte @@ -18,14 +18,17 @@ import ModalSubtitle from "@lib/components/ModalSubtitle.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" import SignUpEmailConfirm from "@app/components/SignUpEmailConfirm.svelte" + import ProgressBar from "@app/components/ProgressBar.svelte" import {pushToast, popToast} from "@app/util/toast" import {pushModal} from "@app/util/modal" type Props = { next: () => void + step?: number + totalSteps?: number } - const {next}: Props = $props() + const {next, step, totalSteps}: Props = $props() const back = () => history.back() @@ -81,7 +84,7 @@ setKey("signup.clientOptions", clientOptions) popToast(toastId) - pushModal(SignUpEmailConfirm, {next}) + pushModal(SignUpEmailConfirm, {next, step, totalSteps}) } catch (e) { console.error(e) @@ -101,6 +104,9 @@ + {#if step && totalSteps} + + {/if} Sign up with Email Keep your keys safe using multi-signer key sharing diff --git a/src/app/components/SignUpEmailConfirm.svelte b/src/app/components/SignUpEmailConfirm.svelte index b3279179..73b1b65b 100644 --- a/src/app/components/SignUpEmailConfirm.svelte +++ b/src/app/components/SignUpEmailConfirm.svelte @@ -15,12 +15,15 @@ import ModalTitle from "@lib/components/ModalTitle.svelte" import ModalSubtitle from "@lib/components/ModalSubtitle.svelte" import ModalFooter from "@lib/components/ModalFooter.svelte" + import ProgressBar from "@app/components/ProgressBar.svelte" type Props = { next: () => void + step?: number + totalSteps?: number } - const {next}: Props = $props() + const {next, step, totalSteps}: Props = $props() const email = getKey("signup.email") @@ -41,6 +44,9 @@ + {#if step && totalSteps} + + {/if} Verify your Email Address Enter the one-time confirmation code sent to your email diff --git a/src/app/components/SignUpKey.svelte b/src/app/components/SignUpKey.svelte index 177bef2c..f94302bf 100644 --- a/src/app/components/SignUpKey.svelte +++ b/src/app/components/SignUpKey.svelte @@ -4,11 +4,13 @@ type Props = { next: () => void + step?: number + totalSteps?: number } - const {next}: Props = $props() + const {next, step, totalSteps}: Props = $props() const secret = getKey("signup.secret")! - + diff --git a/src/app/components/SignUpProfile.svelte b/src/app/components/SignUpProfile.svelte index 04a3d122..d2e69ea4 100644 --- a/src/app/components/SignUpProfile.svelte +++ b/src/app/components/SignUpProfile.svelte @@ -8,12 +8,15 @@ import Modal from "@lib/components/Modal.svelte" import ModalBody from "@lib/components/ModalBody.svelte" import ProfileEditForm from "@app/components/ProfileEditForm.svelte" + import ProgressBar from "@app/components/ProgressBar.svelte" type Props = { next: () => void + step?: number + totalSteps?: number } - const {next}: Props = $props() + const {next, step, totalSteps}: Props = $props() const profile = getKey("signup.profile")! @@ -29,6 +32,9 @@ + {#if step && totalSteps} + + {/if} {#snippet footer()} + {#if step && totalSteps} + + {/if} + + {/snippet} + {#snippet progressBar()} {#if step && totalSteps} {/if} - - {#snippet footer()} - - - {/snippet} - - - + {/snippet} + -- 2.52.0