From b9ca4a6a79c6c5aa9551a296fc87373e385420d9 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 10 Oct 2022 15:02:54 +0200 Subject: [PATCH 1/8] feat: wizard exit confirmation modal --- src/lib/layout/wizard.svelte | 19 +++++++++++++- src/lib/layout/wizardExitModal.svelte | 26 +++++++++++++++++++ .../[collection]/createDocument.svelte | 2 +- 3 files changed, 45 insertions(+), 2 deletions(-) create mode 100644 src/lib/layout/wizardExitModal.svelte diff --git a/src/lib/layout/wizard.svelte b/src/lib/layout/wizard.svelte index 81ad56cfa..ede92f49b 100644 --- a/src/lib/layout/wizard.svelte +++ b/src/lib/layout/wizard.svelte @@ -13,14 +13,17 @@ import { Button, Form } from '$lib/elements/forms'; import { wizard } from '$lib/stores/wizard'; import { createEventDispatcher, type SvelteComponent } from 'svelte'; + import WizardExitModal from './wizardExitModal.svelte'; export let title: string; export let steps: WizardStepsType; + export let confirmExit = false; export let finalAction = 'Create'; const dispatch = createEventDispatcher(); let currentStep = 1; + let showExitModal = false; function handleKeydown(event: KeyboardEvent) { if (event.key === 'Escape') { @@ -29,6 +32,14 @@ } } + function handleExit() { + if (confirmExit) { + showExitModal = true; + } else { + wizard.hide(); + } + } + function submit() { if (isLastStep) { dispatch('finish'); @@ -52,7 +63,7 @@
{title}
- @@ -91,3 +102,9 @@ + +{#if showExitModal} + wizard.hide()}> + this process + +{/if} diff --git a/src/lib/layout/wizardExitModal.svelte b/src/lib/layout/wizardExitModal.svelte new file mode 100644 index 000000000..d9ab70bd7 --- /dev/null +++ b/src/lib/layout/wizardExitModal.svelte @@ -0,0 +1,26 @@ + + +
+ + Exit Process +

+ Are you sure you want to exit from ? All data will be deleted. This action is + irreversible. +

+ + + + +
+
diff --git a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte index 310158379..567896599 100644 --- a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte +++ b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte @@ -76,4 +76,4 @@ }); - + From b5b70d2918dc016e8b2a948f02341da72bd4f255 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 10 Oct 2022 15:07:04 +0200 Subject: [PATCH 2/8] fix: remove test argument --- .../[database]/collection/[collection]/createDocument.svelte | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte index 567896599..310158379 100644 --- a/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte +++ b/src/routes/console/project-[project]/databases/database/[database]/collection/[collection]/createDocument.svelte @@ -76,4 +76,4 @@ }); - + From f78c5dd64f2c0dc4d0f7dc78a04b18b67c3db1b4 Mon Sep 17 00:00:00 2001 From: Arman Date: Mon, 10 Oct 2022 17:25:56 +0200 Subject: [PATCH 3/8] feat: optional steps are skippable now --- src/lib/components/step.svelte | 2 +- src/lib/components/steps.svelte | 8 ++++++++ src/lib/layout/wizard.svelte | 11 +++++++++-- .../collection/[collection]/createDocument.svelte | 3 ++- 4 files changed, 20 insertions(+), 4 deletions(-) diff --git a/src/lib/components/step.svelte b/src/lib/components/step.svelte index 95c010536..255d7ca84 100644 --- a/src/lib/components/step.svelte +++ b/src/lib/components/step.svelte @@ -9,7 +9,7 @@
  • + aria-label={`${completed ? 'done' : current ? 'current' : ''} step`}> {#if isSub} {step.text} {:else} diff --git a/src/lib/components/steps.svelte b/src/lib/components/steps.svelte index 5d0d82c24..905e663ab 100644 --- a/src/lib/components/steps.svelte +++ b/src/lib/components/steps.svelte @@ -3,18 +3,26 @@ export let steps: { text: string; + optional: boolean; substeps?: { text: string; }[]; }[]; export let currentStep = 1; export let currentSub = 1; + + $: firstOptional = steps.findIndex((step) => step.optional); + + //TODO: remove inline styling
      {#if steps} {#each steps as step, index} {@const stepNumber = index + 1} + {#if firstOptional === index} + OPTIONAL + {/if} ; @@ -70,8 +71,10 @@ @@ -87,6 +90,10 @@ {/each}