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 f91772e8..1e4e2560 100644
--- a/src/routes/__layout.svelte
+++ b/src/routes/__layout.svelte
@@ -3,13 +3,28 @@
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>
+{#if ready}
<SvelteToast />
-<slot />
+ <slot />
+{/if}