2025-05-14 11:23:57 -04:00
|
|
|
<script lang="ts">
|
|
|
|
|
import PageContent from '$lib/components/layouts/PageContent.svelte';
|
2025-05-14 12:30:47 -04:00
|
|
|
import TitleLayout from '$lib/components/layouts/TitleLayout.svelte';
|
2025-05-14 11:23:57 -04:00
|
|
|
import NavigationBar from '$lib/components/shared-components/navigation-bar/navigation-bar.svelte';
|
2025-05-14 12:30:47 -04:00
|
|
|
import AdminSidebar from '$lib/sidebars/AdminSidebar.svelte';
|
2025-05-14 11:23:57 -04:00
|
|
|
import { sidebarStore } from '$lib/stores/sidebar.svelte';
|
2025-11-25 16:35:37 -05:00
|
|
|
import { AppShell, AppShellHeader, AppShellSidebar, Scrollable, type BreadcrumbItem } from '@immich/ui';
|
2025-05-14 11:23:57 -04:00
|
|
|
import type { Snippet } from 'svelte';
|
|
|
|
|
|
2025-05-14 12:30:47 -04:00
|
|
|
type Props = {
|
2025-11-25 16:35:37 -05:00
|
|
|
breadcrumbs: BreadcrumbItem[];
|
2025-05-14 11:23:57 -04:00
|
|
|
buttons?: Snippet;
|
|
|
|
|
children?: Snippet;
|
2025-05-14 12:30:47 -04:00
|
|
|
};
|
2025-05-14 11:23:57 -04:00
|
|
|
|
2025-11-25 16:35:37 -05:00
|
|
|
let { breadcrumbs, buttons, children }: Props = $props();
|
2025-05-14 11:23:57 -04:00
|
|
|
</script>
|
|
|
|
|
|
|
|
|
|
<AppShell>
|
|
|
|
|
<AppShellHeader>
|
|
|
|
|
<NavigationBar showUploadButton={false} noBorder />
|
|
|
|
|
</AppShellHeader>
|
2025-10-21 21:10:12 -05:00
|
|
|
<AppShellSidebar bind:open={sidebarStore.isOpen} class="border-none shadow-none">
|
2025-05-14 12:30:47 -04:00
|
|
|
<AdminSidebar />
|
2025-05-14 11:23:57 -04:00
|
|
|
</AppShellSidebar>
|
|
|
|
|
|
2025-11-25 16:35:37 -05:00
|
|
|
<TitleLayout {breadcrumbs} {buttons}>
|
2025-05-14 12:30:47 -04:00
|
|
|
<Scrollable class="grow">
|
|
|
|
|
<PageContent>
|
|
|
|
|
{@render children?.()}
|
|
|
|
|
</PageContent>
|
|
|
|
|
</Scrollable>
|
|
|
|
|
</TitleLayout>
|
2025-05-14 11:23:57 -04:00
|
|
|
</AppShell>
|