Erant-OldApp/src/App.svelte

60 lines
1.4 KiB
Svelte
Raw Permalink Normal View History

2022-12-01 11:25:45 +00:00
<script lang="ts">
import './main.scss'
2022-12-23 21:11:18 +00:00
import { i18n, isLoading as localeLoading } from '$lib/locales'
2023-04-27 16:45:07 +00:00
import client, { isLoading as authLoading, databases, user } from '$lib/appwrite'
2022-12-06 21:07:17 +00:00
import { onMount } from 'svelte'
2022-12-01 11:25:45 +00:00
2022-12-18 13:33:23 +00:00
import Routes from './__routes.svelte'
/** import CookiesPopUp from '$lib/components/Cookies/CookiesPopUp.svelte' */
2023-01-29 18:16:07 +00:00
import { navigate } from '$lib/router'
import LocationRequest from '$lib/components/Map/LocationRequest.svelte'
2023-04-27 16:45:07 +00:00
import { Models } from 'appwrite'
import { UsersAnswersDocument } from '$lib/TStypes/experiences'
2022-12-01 11:25:45 +00:00
2022-12-06 21:07:17 +00:00
let isMounted = false
2022-12-23 21:11:18 +00:00
$: isReady = $localeLoading === false && $authLoading === false && isMounted
2023-03-14 17:35:03 +00:00
$: if (isReady && !$user?.emailVerification) {
2023-03-03 19:59:50 +00:00
if (!location.pathname.startsWith('/login') && !location.pathname.startsWith('/register')) {
2023-02-25 19:18:55 +00:00
navigate('/login')
2023-01-29 18:16:07 +00:00
}
}
2022-12-06 21:07:17 +00:00
onMount(() => {
/** init i18n */
i18n()
/** register service worker */
if ('serviceWorker' in window.navigator) {
window.navigator.serviceWorker.register('/serviceworker.js', {
scope: '/',
})
}
isMounted = true
})
2022-12-01 11:25:45 +00:00
</script>
2023-01-09 21:16:36 +00:00
<main>
<LocationRequest />
<!-- <CookiesPopUp /> -->
2023-01-08 17:35:33 +00:00
2023-01-02 16:16:44 +00:00
<!-- you can display loading while app is not ready (waiting for user and i18n) -->
2022-12-23 21:11:18 +00:00
{#if isReady}
2022-12-18 13:33:23 +00:00
<Routes />
2022-12-11 16:20:26 +00:00
{/if}
2023-01-09 21:16:36 +00:00
</main>
<style lang="scss">
main {
height: 100%;
display: flex;
justify-content: center;
justify-self: center;
width: 100%;
position: relative;
max-width: var(--max-viewport-width);
}
</style>