probably fixed blank page issue upon logout

This commit is contained in:
2025-09-01 16:37:54 +02:00
parent 0792baff49
commit cc81b0909a
4 changed files with 19 additions and 9 deletions

View File

@@ -3,7 +3,7 @@
import { Router, Route } from 'svelte-tiny-router'; import { Router, Route } from 'svelte-tiny-router';
import { loadTranslation } from './translations.svelte.js'; import { loadTranslation } from './translations.svelte.js';
import { user } from './user.svelte.js'; import { checkUser, user } from './user.svelte.js';
import AddDoc from "./routes/document/Add.svelte"; import AddDoc from "./routes/document/Add.svelte";
import AddTask from "./routes/task/Add.svelte"; import AddTask from "./routes/task/Add.svelte";
@@ -46,12 +46,17 @@
fetch(url).then(resp => resp.text()).then(css => document.getElementById('usercss').innerText = css); fetch(url).then(resp => resp.text()).then(css => document.getElementById('usercss').innerText = css);
} }
async function testGuard({to, from, next}){
await checkUser();
next();
}
$effect(() => loadTheme(user.theme)); $effect(() => loadTheme(user.theme));
</script> </script>
{#if translations_ready } {#if translations_ready }
<Router> {#if user.name}
{#if user.name } <Router beforeEach={[testGuard]}>
<!-- https://github.com/notnotsamuel/svelte-tiny-router --> <!-- https://github.com/notnotsamuel/svelte-tiny-router -->
<Menu /> <Menu />
<Route path="/" component={User} /> <Route path="/" component={User} />
@@ -85,14 +90,16 @@
<Route> <Route>
Not found! Not found!
</Route> </Route>
</Router>
{:else} {:else}
<Router>
<Route path="/user/reset/pw" component={ResetPw} /> <Route path="/user/reset/pw" component={ResetPw} />
<Route path="/oidc_callback" component={Callback} /> <Route path="/oidc_callback" component={Callback} />
<Route> <Route>
<Login /> <Login />
</Route> </Route>
{/if}
</Router> </Router>
{/if}
<Footer /> <Footer />
{:else} {:else}
<p>Loading translations...</p> <p>Loading translations...</p>

View File

@@ -1,5 +1,5 @@
<script> <script>
import { onDestroy, onMount } from 'svelte'; import { onMount } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router'; import { useTinyRouter } from 'svelte-tiny-router';
import { logout, user } from '../user.svelte.js'; import { logout, user } from '../user.svelte.js';
@@ -37,10 +37,6 @@ async function search(e){
} }
onMount(fetchModules); onMount(fetchModules);
onDestroy(() => {
if (interval) clearInterval(interval);
});
</script> </script>
<style> <style>

View File

@@ -1,4 +1,5 @@
<script> <script>
import { onDestroy } from 'svelte';
import { useTinyRouter } from 'svelte-tiny-router'; import { useTinyRouter } from 'svelte-tiny-router';
import { api } from '../urls.svelte'; import { api } from '../urls.svelte';
@@ -44,6 +45,10 @@
interval = null; interval = null;
} }
}); });
onDestroy(() => {
if (interval) clearInterval(interval);
});
</script> </script>

View File

@@ -15,6 +15,8 @@ export async function checkUser(){
for (let key of Object.keys(json)) user[key] = json[key]; for (let key of Object.keys(json)) user[key] = json[key];
url = `${location.protocol}//${location.host.replace('5173','8080')}/api/time/started`; url = `${location.protocol}//${location.host.replace('5173','8080')}/api/time/started`;
resp = await fetch(url,{credentials: 'include'}); resp = await fetch(url,{credentials: 'include'});
} else {
user.name = null;
} }
if (resp.ok){ if (resp.ok){
const track = await resp.json(); const track = await resp.json();