aboutsummaryrefslogtreecommitdiffstats
path: root/src/routes/__layout.svelte
diff options
context:
space:
mode:
Diffstat (limited to 'src/routes/__layout.svelte')
-rw-r--r--src/routes/__layout.svelte23
1 files changed, 19 insertions, 4 deletions
diff --git a/src/routes/__layout.svelte b/src/routes/__layout.svelte
index 6562db18..c01dc848 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/__layout.svelte
@@ -2,12 +2,27 @@
import '../app.css';
import { onMount } from 'svelte';
import { connect } from '$lib/socket';
- import { token } from '$lib/store';
- import { session } from '$app/stores';
+ import { user, token } from '$lib/store';
+ import { page, session } from '$app/stores';
import { browser } from '$app/env';
+ import { goto } from '$app/navigation';
browser && ($token ||= $session.token);
- onMount(connect);
+ let protectedRoutes = [/receive/];
+ let ready = false;
+
+ onMount(() => {
+ if (protectedRoutes.find((p) => $page.url.pathname.match(p))) {
+ if (!$token) goto('/login');
+ user.subscribe((u) => (ready = true));
+ } else {
+ ready = true;
+ }
+
+ connect();
+ });
</script>
-<slot />
+{#if ready}
+ <slot />
+{/if}