diff options
Diffstat (limited to 'apps/accounts/src/app/index.svelte')
| -rw-r--r-- | apps/accounts/src/app/index.svelte | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/apps/accounts/src/app/index.svelte b/apps/accounts/src/app/index.svelte new file mode 100644 index 0000000..40fe6ae --- /dev/null +++ b/apps/accounts/src/app/index.svelte @@ -0,0 +1,61 @@ +<svelte:options immutable={true}/> +<svelte:window bind:online={online}/> + +<script> + import {projects_base} from "$shared/lib/configuration"; + import Router from "svelte-spa-router"; + import {wrap} from "svelte-spa-router/wrap"; + import {is_active} from "$shared/lib/session"; + import NotFound from "$app/pages/not-found.svelte"; + import SignUp from "$app/pages/sign-up.svelte"; + import Login from "$app/pages/login.svelte"; + import Forgot from "$app/pages/forgot.svelte"; + import Reset from "$app/pages/reset-password.svelte"; + import PreHeader from "$shared/components/pre-header.svelte"; + + let online = true; + + async function user_is_logged_in() { + if (await is_active()) { + location.replace(projects_base("#/home")); + } + return true; + } + + const routes = { + "/login": wrap({ + component: Login, + conditions: [user_is_logged_in], + }), + "/": wrap({ + component: Login, + conditions: [user_is_logged_in], + }), + "/signup": wrap({ + component: SignUp, + conditions: [user_is_logged_in], + }), + "/reset-password": wrap({ + component: Reset, + conditions: [user_is_logged_in], + }), + "/forgot": wrap({ + component: Forgot, + conditions: [user_is_logged_in], + }), + "*": NotFound, + }; +</script> + +<PreHeader show="{!online}">You seem to be offline, please check your internet connection.</PreHeader> + +<Router + {routes} + restoreScrollState={true} + on:routeLoading={() => { + document.getElementById("loader").style.display = "inline-block"; + }} + on:routeLoaded={() => { + document.getElementById("loader").style.display = "none"; + }} +/> |
