Spaces:
Running
Running
| <script lang="ts"> | |
| import { onMount, onDestroy } from 'svelte'; | |
| import { registerShortcuts, shortcuts } from './lib/config/shortcuts'; | |
| import { loadingStore } from './lib/stores/loading'; | |
| import AppHeader from './lib/components/layout/AppHeader.svelte'; | |
| import SplitView from './lib/components/layout/SplitView.svelte'; | |
| import LoadingScreen from './lib/components/layout/LoadingScreen.svelte'; | |
| let unregisterShortcuts: () => void; | |
| onMount(() => { | |
| loadingStore.startLoading(); | |
| unregisterShortcuts = registerShortcuts(shortcuts); | |
| setTimeout(() => { | |
| loadingStore.setProgress(60); | |
| }, 100); | |
| requestAnimationFrame(() => { | |
| requestAnimationFrame(() => { | |
| loadingStore.finishLoading(); | |
| }); | |
| }); | |
| }); | |
| onDestroy(() => { | |
| if (unregisterShortcuts) unregisterShortcuts(); | |
| }); | |
| </script> | |
| <LoadingScreen | |
| loading={$loadingStore.isLoading} | |
| /> | |
| <main> | |
| <AppHeader /> | |
| <SplitView /> | |
| </main> | |
| <style> | |
| :global(body) { | |
| margin: 0; | |
| padding: 0; | |
| font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", "Inter", system-ui, sans-serif; | |
| background: linear-gradient(135deg, #0B0A09 0%, #0F0E0C 100%); | |
| color: #ffffff; | |
| overflow: hidden; | |
| } | |
| :global(*) { | |
| box-sizing: border-box; | |
| } | |
| main { | |
| width: 100vw; | |
| height: 100vh; | |
| overflow: hidden; | |
| display: flex; | |
| flex-direction: column; | |
| } | |
| </style> | |