mirror of
https://github.com/immich-app/immich.git
synced 2026-04-17 16:11:55 -04:00
108 lines
3.5 KiB
Svelte
108 lines
3.5 KiB
Svelte
<script lang="ts">
|
|
import BottomInfo from '$lib/components/shared-components/side-bar/bottom-info.svelte';
|
|
import RecentAlbums from '$lib/components/shared-components/side-bar/recent-albums.svelte';
|
|
import Sidebar from '$lib/components/sidebar/sidebar.svelte';
|
|
import { AppRoute } from '$lib/constants';
|
|
import { featureFlagsManager } from '$lib/managers/feature-flags-manager.svelte';
|
|
import { Route } from '$lib/route';
|
|
import { recentAlbumsDropdown } from '$lib/stores/preferences.store';
|
|
import { preferences } from '$lib/stores/user.store';
|
|
import { NavbarGroup, NavbarItem } from '@immich/ui';
|
|
import {
|
|
mdiAccount,
|
|
mdiAccountMultiple,
|
|
mdiAccountMultipleOutline,
|
|
mdiAccountOutline,
|
|
mdiArchiveArrowDown,
|
|
mdiArchiveArrowDownOutline,
|
|
mdiFolderOutline,
|
|
mdiHeart,
|
|
mdiHeartOutline,
|
|
mdiImageAlbum,
|
|
mdiImageMultiple,
|
|
mdiImageMultipleOutline,
|
|
mdiLink,
|
|
mdiLock,
|
|
mdiLockOutline,
|
|
mdiMagnify,
|
|
mdiMap,
|
|
mdiMapOutline,
|
|
mdiTagMultipleOutline,
|
|
mdiToolbox,
|
|
mdiToolboxOutline,
|
|
mdiTrashCan,
|
|
mdiTrashCanOutline,
|
|
} from '@mdi/js';
|
|
import { t } from 'svelte-i18n';
|
|
import { fly } from 'svelte/transition';
|
|
</script>
|
|
|
|
<Sidebar ariaLabel={$t('primary')}>
|
|
<NavbarItem title={$t('photos')} href={Route.photos()} icon={mdiImageMultipleOutline} activeIcon={mdiImageMultiple} />
|
|
|
|
{#if featureFlagsManager.value.search}
|
|
<NavbarItem title={$t('explore')} href={Route.explore()} icon={mdiMagnify} />
|
|
{/if}
|
|
|
|
{#if featureFlagsManager.value.map}
|
|
<NavbarItem title={$t('map')} href={AppRoute.MAP} icon={mdiMapOutline} activeIcon={mdiMap} />
|
|
{/if}
|
|
|
|
{#if $preferences.people.enabled && $preferences.people.sidebarWeb}
|
|
<NavbarItem title={$t('people')} href={AppRoute.PEOPLE} icon={mdiAccountOutline} activeIcon={mdiAccount} />
|
|
{/if}
|
|
|
|
{#if $preferences.sharedLinks.enabled && $preferences.sharedLinks.sidebarWeb}
|
|
<NavbarItem title={$t('shared_links')} href={Route.sharedLinks()} icon={mdiLink} />
|
|
{/if}
|
|
|
|
<NavbarItem
|
|
title={$t('sharing')}
|
|
href={Route.sharing()}
|
|
icon={mdiAccountMultipleOutline}
|
|
activeIcon={mdiAccountMultiple}
|
|
/>
|
|
|
|
<NavbarGroup title={$t('library')} size="tiny" />
|
|
|
|
<NavbarItem title={$t('favorites')} href={Route.favorites()} icon={mdiHeartOutline} activeIcon={mdiHeart} />
|
|
|
|
<NavbarItem
|
|
title={$t('albums')}
|
|
href={Route.albums()}
|
|
icon={{ icon: mdiImageAlbum, flipped: true }}
|
|
bind:expanded={$recentAlbumsDropdown}
|
|
>
|
|
{#snippet items()}
|
|
<span in:fly={{ y: -20 }} class="hidden md:block">
|
|
<RecentAlbums />
|
|
</span>
|
|
{/snippet}
|
|
</NavbarItem>
|
|
|
|
{#if $preferences.tags.enabled && $preferences.tags.sidebarWeb}
|
|
<NavbarItem title={$t('tags')} href={AppRoute.TAGS} icon={{ icon: mdiTagMultipleOutline, flipped: true }} />
|
|
{/if}
|
|
|
|
{#if $preferences.folders.enabled && $preferences.folders.sidebarWeb}
|
|
<NavbarItem title={$t('folders')} href={AppRoute.FOLDERS} icon={{ icon: mdiFolderOutline, flipped: true }} />
|
|
{/if}
|
|
|
|
<NavbarItem title={$t('utilities')} href={Route.utilities()} icon={mdiToolboxOutline} activeIcon={mdiToolbox} />
|
|
|
|
<NavbarItem
|
|
title={$t('archive')}
|
|
href={Route.archive()}
|
|
icon={mdiArchiveArrowDownOutline}
|
|
activeIcon={mdiArchiveArrowDown}
|
|
/>
|
|
|
|
<NavbarItem title={$t('locked_folder')} href={Route.locked()} icon={mdiLockOutline} activeIcon={mdiLock} />
|
|
|
|
{#if featureFlagsManager.value.trash}
|
|
<NavbarItem title={$t('trash')} href={Route.trash()} icon={mdiTrashCanOutline} activeIcon={mdiTrashCan} />
|
|
{/if}
|
|
|
|
<BottomInfo />
|
|
</Sidebar>
|