diff --git a/src/lib/stores/user.ts b/src/lib/stores/user.ts deleted file mode 100644 index fc3cad2..0000000 --- a/src/lib/stores/user.ts +++ /dev/null @@ -1,5 +0,0 @@ -import { writable } from 'svelte/store'; -import { type User } from '@supabase/auth-js'; - -// Create a user store with null as the initial value -export const user = writable(null); diff --git a/src/routes/+layout.svelte b/src/routes/+layout.svelte index 36f815b..80bd6b5 100644 --- a/src/routes/+layout.svelte +++ b/src/routes/+layout.svelte @@ -2,20 +2,13 @@ import 'tailwindcss/tailwind.css'; import { onDestroy, onMount } from 'svelte'; import { basket, type Basket, type Item } from '$lib/stores/basket.js'; - import { user } from '$lib/stores/user.js'; - import { type User } from '@supabase/auth-js'; + import { invalidate } from '$app/navigation'; import SignIn from '$lib/components/SignIn.svelte'; import SignOut from '$lib/components/SignOut.svelte'; export let data; - let { supabase } = data; - $: ({ supabase } = data); - - let localUser = null as User | null; - const unsubscribe = user.subscribe((value) => { - localUser = value; - }); - onDestroy(unsubscribe); + let { supabase, session } = data + $: ({ supabase, session } = data) let localBasket: Basket; const unsubscribeToBasket = basket.subscribe((value) => { @@ -23,24 +16,16 @@ }); onDestroy(unsubscribeToBasket); - onMount(async () => { - await getUser(); + onMount(() => { + const { data } = supabase.auth.onAuthStateChange((event, _session) => { + if (_session?.expires_at !== session?.expires_at) { + // tells SvelteKit that the root +layout.ts load function should be executed whenever the session updates to keep the page store in sync. + invalidate('supabase:auth') + } + }) + + return () => data.subscription.unsubscribe() }); - - async function getUser() { - const { - data: { session } - } = await supabase.auth.getSession(); - - if (session) { - localUser = session.user; - } else { - localUser = null; - } - - // Update the store so that user is available to all components - user.set(localUser); - } @@ -125,9 +110,9 @@