diff options
Diffstat (limited to 'web/pw-server/src/lib')
-rw-r--r-- | web/pw-server/src/lib/components/navbar/UserControls.svelte | 13 | ||||
-rw-r--r-- | web/pw-server/src/lib/stores/current_user.ts | 3 |
2 files changed, 10 insertions, 6 deletions
diff --git a/web/pw-server/src/lib/components/navbar/UserControls.svelte b/web/pw-server/src/lib/components/navbar/UserControls.svelte index e9dbab1..3c1d181 100644 --- a/web/pw-server/src/lib/components/navbar/UserControls.svelte +++ b/web/pw-server/src/lib/components/navbar/UserControls.svelte @@ -1,11 +1,11 @@ <script lang="ts"> import { get_session_token } from "$lib/auth"; + import { currentUser } from "$lib/stores/current_user"; import { onMount } from "svelte"; - let user = null; - onMount(async () => { + // TODO: currentUser won't be set if the navbar component is not created. const session_token = get_session_token(); if (!session_token) { return; @@ -23,19 +23,20 @@ throw response.statusText; } - user = await response.json(); + const user = await response.json(); + currentUser.set(user); }); function signOut() { // TODO: destroy session on server - user = null; + currentUser.set(null); } </script> <div class="user-controls"> - {#if user} + {#if $currentUser} <div class="current-user-name"> - {user["username"]} + {$currentUser["username"]} </div> <div class="sign-out" on:click={signOut}>Sign out</div> {:else} diff --git a/web/pw-server/src/lib/stores/current_user.ts b/web/pw-server/src/lib/stores/current_user.ts new file mode 100644 index 0000000..ac53070 --- /dev/null +++ b/web/pw-server/src/lib/stores/current_user.ts @@ -0,0 +1,3 @@ +import { writable } from "svelte/store"; + +export const currentUser = writable(null); |