File size: 1,685 Bytes
794cf6c
 
 
 
bc7e9cd
794cf6c
 
 
dd99b77
794cf6c
dd99b77
794cf6c
 
bc7e9cd
 
 
ebb12a0
794cf6c
ebb12a0
794cf6c
 
 
ebb12a0
794cf6c
 
 
 
 
 
ebb12a0
794cf6c
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
<script lang="ts">
    import { onMount, onDestroy } from 'svelte';
    import { registerShortcuts, shortcuts } from './lib/config/shortcuts';
    import { loadingStore } from './lib/stores/loading';
    import { contentManager } from './lib/services/content-manager';
    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();

        // Initialize ContentManager
        contentManager.initialize();

        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>