diff --git a/src/lib/components/SignUp.svelte b/src/lib/components/SignUp.svelte index a4b435f..c1db49e 100644 --- a/src/lib/components/SignUp.svelte +++ b/src/lib/components/SignUp.svelte @@ -17,7 +17,7 @@ password: password, options: { // Redirect URL after successful sign-up - redirectTo: '/profile' + redirectTo: '/account' } }); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 3b9e286..fc71e3b 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -138,7 +138,7 @@ class="mt-3 z-[1] p-2 shadow menu menu-sm dropdown-content bg-base-100 text-base-content rounded-box min-w-[13rem] w-auto" >
  • - Profile + Account
  • Settings
  • diff --git a/src/routes/account/+page.server.ts b/src/routes/account/+page.server.ts new file mode 100644 index 0000000..f2a414a --- /dev/null +++ b/src/routes/account/+page.server.ts @@ -0,0 +1,55 @@ +import { fail, redirect } from '@sveltejs/kit'; +import type { Actions, PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ locals: { supabase, safeGetSession } }) => { + const { session } = await safeGetSession(); + + if (!session) { + redirect(303, '/'); + } + + const { data: profile } = await supabase + .from('profiles') + .select(`username, full_name`) + .eq('id', session.user.id) + .single(); + + return { session, profile }; +}; + +export const actions: Actions = { + update: async ({ request, locals: { supabase, safeGetSession } }) => { + const formData = await request.formData(); + const fullName = formData.get('fullName') as string; + + const { session } = await safeGetSession(); + + const { error } = await supabase.from('profiles').upsert({ + id: session?.user.id, + full_name: fullName, + username: session?.user.email, + updated_at: new Date() + }); + + console.error(error); + + if (error) { + return fail(500, { + fullName, + username: session?.user.email + }); + } + + return { + fullName, + username: session?.user.email + }; + }, + signout: async ({ locals: { supabase, safeGetSession } }) => { + const { session } = await safeGetSession(); + if (session) { + await supabase.auth.signOut(); + redirect(303, '/'); + } + } +}; diff --git a/src/routes/account/+page.svelte b/src/routes/account/+page.svelte new file mode 100644 index 0000000..5e26972 --- /dev/null +++ b/src/routes/account/+page.svelte @@ -0,0 +1,64 @@ + + +
    +
    +
    + + +
    + +
    + + +
    + +
    + +
    +
    + +
    +
    + +
    +
    +
    diff --git a/src/routes/profile/+page.svelte b/src/routes/profile/+page.svelte deleted file mode 100644 index 6b9d79f..0000000 --- a/src/routes/profile/+page.svelte +++ /dev/null @@ -1,16 +0,0 @@ - - -
    - {#if session?.user} - {session?.user?.email} - {:else} -

    Please log in to view this page

    - {/if} -