flotilla/src/app/components/AppContainer.svelte

46 lines
1.3 KiB
Svelte
Raw Normal View History

<script lang="ts">
2025-02-04 00:37:14 +00:00
import type {Snippet} from "svelte"
import {page} from "$app/stores"
2024-10-15 22:52:30 +00:00
import {pubkey} from "@welshman/app"
import Landing from "@app/components/Landing.svelte"
import Toast from "@app/components/Toast.svelte"
import PrimaryNav from "@app/components/PrimaryNav.svelte"
import EmailConfirm from "@app/components/EmailConfirm.svelte"
import PasswordReset from "@app/components/PasswordReset.svelte"
2024-11-27 00:39:49 +00:00
import {BURROW_URL} from "@app/state"
import {modals, pushModal} from "@app/modal"
2025-02-04 00:37:14 +00:00
interface Props {
children: Snippet
}
let {children}: Props = $props()
if (BURROW_URL && !$pubkey) {
if ($page.url.pathname === "/confirm-email") {
pushModal(EmailConfirm, {
email: $page.url.searchParams.get("email"),
confirm_token: $page.url.searchParams.get("confirm_token"),
})
}
if ($page.url.pathname === "/reset-password") {
pushModal(PasswordReset, {
email: $page.url.searchParams.get("email"),
reset_token: $page.url.searchParams.get("reset_token"),
})
}
2024-11-27 00:39:49 +00:00
}
</script>
<div class="flex h-screen overflow-hidden">
2024-10-15 22:52:30 +00:00
{#if $pubkey}
<PrimaryNav>
2025-02-04 00:37:14 +00:00
{@render children?.()}
2024-10-15 22:52:30 +00:00
</PrimaryNav>
{:else if !$modals[$page.url.hash.slice(1)]}
2024-10-15 22:52:30 +00:00
<Landing />
{/if}
</div>
<Toast />