Files
Moku/src/shared/chrome/Layout.svelte
T
2026-04-20 00:19:22 -05:00

50 lines
2.1 KiB
Svelte

<script lang="ts">
import { store } from "@store/state.svelte";
import Sidebar from "@shared/chrome/Sidebar.svelte";
import RecentActivity from "@shared/chrome/RecentActivity.svelte";
import Library from "@features/library/components/Library.svelte";
import SeriesDetail from "@features/series/components/SeriesDetail.svelte";
import Home from "@features/home/components/Home.svelte";
import Search from "@features/discover/components/Search.svelte";
import GenreDrillPage from "@features/discover/components/GenreDrillPage.svelte";
import Downloads from "@features/downloads/components/Downloads.svelte";
import Extensions from "@features/extensions/components/Extensions.svelte";
import Tracking from "@features/tracking/components/Tracking.svelte";
</script>
<div class="frame">
<div class="shell">
<Sidebar />
<main class="main">
{#if store.activeManga}
<SeriesDetail />
{:else if store.genreFilter}
<GenreDrillPage />
{:else if store.navPage === "home"}
<Home />
{:else if store.navPage === "library"}
<Library />
{:else if store.navPage === "search"}
<Search />
{:else if store.navPage === "history"}
<RecentActivity />
{:else if store.navPage === "downloads"}
<Downloads />
{:else if store.navPage === "extensions"}
<Extensions />
{:else if store.navPage === "tracking"}
<Tracking />
{:else}
<Home />
{/if}
</main>
</div>
</div>
<style>
:global(*, *::before, *::after) { scrollbar-width: none; }
:global(*::-webkit-scrollbar) { display: none; }
.frame { display: flex; padding: 6px 15px 15px; width: 100%; height: 100%; box-sizing: border-box; overflow: hidden; }
.shell { display: flex; flex: 1; border-radius: 14px; overflow: hidden; border: 1px solid var(--border-dim); background: var(--bg-base); min-height: 0; min-width: 0; }
.main { flex: 1; overflow: hidden; background: var(--bg-surface); transform: translateZ(0); contain: layout style; min-width: 0; }
</style>