diff --git a/src/lib/components/ui/collapsible/index.ts b/src/lib/components/ui/collapsible/index.ts new file mode 100644 index 0000000..320bc14 --- /dev/null +++ b/src/lib/components/ui/collapsible/index.ts @@ -0,0 +1,7 @@ +import { Collapsible as CollapsiblePrimitive } from "radix-svelte"; + +export const Collapsible = CollapsiblePrimitive.Root; + +export const CollapsibleTrigger = CollapsiblePrimitive.Trigger; + +export const CollapsibleContent = CollapsiblePrimitive.Content; diff --git a/src/routes/auth/signup/+page.server.ts b/src/routes/auth/signup/+page.server.ts index e009e85..f391f18 100644 --- a/src/routes/auth/signup/+page.server.ts +++ b/src/routes/auth/signup/+page.server.ts @@ -102,7 +102,7 @@ export const actions = { // const message = { type: 'success', message: 'Signed Up!' } as const; // throw flashRedirect(message, event); } catch (e) { - if (e instanceof LuciaError && e.message === `DUPLICATE_KEY_ID`) { + if (e instanceof LuciaError && e.message.toUpperCase() === `DUPLICATE_KEY_ID`) { // key already exists console.error('Lucia Error: ', e); } @@ -111,8 +111,9 @@ export const actions = { type: 'error', message: 'Unable to create your account. Please try again.' }; + form.data.password = ''; + form.data.confirm_password = ''; throw error(500, message); - // return setError(form, '', message); } } }; diff --git a/src/routes/auth/signup/+page.svelte b/src/routes/auth/signup/+page.svelte index 24a9beb..4216360 100644 --- a/src/routes/auth/signup/+page.svelte +++ b/src/routes/auth/signup/+page.svelte @@ -2,13 +2,20 @@ import { page } from '$app/stores'; import { superForm } from 'sveltekit-superforms/client'; import * as flashModule from 'sveltekit-flash-message/client'; + import { ChevronsUpDown } from "lucide-svelte"; import Button from '$components/ui/button/Button.svelte'; import Input from '$components/ui/input/Input.svelte'; import Label from '$components/ui/label/Label.svelte'; import { userSchema } from '$lib/config/zod-schemas.js'; import toast from 'svelte-french-toast'; + import { + Collapsible, + CollapsibleContent, + CollapsibleTrigger + } from "$components/ui/collapsible"; export let data; + let isOpen = false; const signUpSchema = userSchema.pick({ firstName: true, @@ -25,7 +32,7 @@ onError: ({ result, message }) => { const errorMessage = result.error.message; message.set({ type: 'error', message: errorMessage }); - } + }, }, taintedMessage: null, validators: signUpSchema, @@ -41,14 +48,8 @@ }); } } - - -
@@ -57,36 +58,53 @@ > Signup for an account - - - {#if $errors.firstName} -

{$errors.firstName}

- {/if} - - - {#if $errors.lastName} -

{$errors.lastName}

- {/if} - - - {#if $errors.email} -

{$errors.email}

- {/if} - + {#if $errors.username}

{$errors.username}

{/if} - + {#if $errors.password}

{$errors.password}

{/if} - + {#if $errors.confirm_password}

{$errors.confirm_password}

{/if} + +
+ Optional Fields: + + + +
+ + + + {#if $errors.email} +

{$errors.email}

+ {/if} +
+ + + + {#if $errors.firstName} +

{$errors.firstName}

+ {/if} +
+ + + + {#if $errors.lastName} +

{$errors.lastName}

+ {/if} +
+