your personal website on atproto - mirror blento.app
at lastfm 43 lines 1.2 kB view raw
1<script lang="ts"> 2 import '../app.css'; 3 4 import { Tooltip } from 'bits-ui'; 5 import { ThemeToggle, Toaster, toast } from '@foxui/core'; 6 import { onMount } from 'svelte'; 7 import { initClient } from '$lib/atproto'; 8 import YoutubeVideoPlayer, { videoPlayer } from '$lib/components/YoutubeVideoPlayer.svelte'; 9 import { page } from '$app/state'; 10 import { goto } from '$app/navigation'; 11 import LoginModal from '$lib/atproto/UI/LoginModal.svelte'; 12 13 let { children, data } = $props(); 14 15 const errorMessages: Record<string, (params: URLSearchParams) => string> = { 16 handle_not_found: (p) => `Handle ${p.get('handle') ?? ''} not found!` 17 }; 18 19 onMount(() => { 20 console.log(data.customDomain); 21 initClient({ customDomain: data.customDomain }); 22 23 const error = page.url.searchParams.get('error'); 24 if (error) { 25 const msg = errorMessages[error]?.(page.url.searchParams) ?? error; 26 toast.error(msg); 27 goto(page.url.pathname, { replaceState: true }); 28 } 29 }); 30</script> 31 32<Tooltip.Provider delayDuration={300}> 33 {@render children()} 34</Tooltip.Provider> 35 36<ThemeToggle class="fixed top-2 left-2 z-10" /> 37<Toaster /> 38 39{#if videoPlayer.id} 40 <YoutubeVideoPlayer /> 41{/if} 42 43<LoginModal />