aboutsummaryrefslogtreecommitdiff
path: root/web/pw-server/src/lib
diff options
context:
space:
mode:
Diffstat (limited to 'web/pw-server/src/lib')
-rw-r--r--web/pw-server/src/lib/components/navbar/UserControls.svelte13
-rw-r--r--web/pw-server/src/lib/stores/current_user.ts3
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);