From 7e891810671bb683c11cb0f6d7671bc49a2b492f Mon Sep 17 00:00:00 2001 From: Kevin Midboe Date: Sun, 13 Aug 2023 22:19:11 +0200 Subject: [PATCH] Album view option for cover or list view --- web/src/lib/stores/preferences.store.ts | 2 + web/src/routes/(user)/albums/+page.svelte | 53 ++++++++++++++++++++--- 2 files changed, 50 insertions(+), 5 deletions(-) diff --git a/web/src/lib/stores/preferences.store.ts b/web/src/lib/stores/preferences.store.ts index b70af766..8a0cb656 100644 --- a/web/src/lib/stores/preferences.store.ts +++ b/web/src/lib/stores/preferences.store.ts @@ -41,8 +41,10 @@ export const isShowDetail = persisted('info-opened', false, {}); export interface AlbumViewSettings { sortBy: string; + view: string; } export const albumViewSettings = persisted('album-view-settings', { sortBy: 'Most recent photo', + view: 'Cover' }); diff --git a/web/src/routes/(user)/albums/+page.svelte b/web/src/routes/(user)/albums/+page.svelte index 4f3e2e43..e4a33eed 100644 --- a/web/src/routes/(user)/albums/+page.svelte +++ b/web/src/routes/(user)/albums/+page.svelte @@ -15,6 +15,8 @@ import { flip } from 'svelte/animate'; import Dropdown from '$lib/components/elements/dropdown.svelte'; import ConfirmDialogue from '$lib/components/shared-components/confirm-dialogue.svelte'; + import { dateFormats } from '$lib/constants'; + import { locale } from '$lib/stores/preferences.store'; import { notificationController, NotificationType, @@ -24,6 +26,15 @@ export let data: PageData; const sortByOptions = ['Most recent photo', 'Last modified', 'Album title']; + const viewOptions = [{ + name: 'Cover', + icon: ViewGridOutline + }, { + name: 'List', + icon: FormatListBulletedSquare + }] + const viewOptionNames = viewOptions.map(option => option.name) + const viewOptionIcons = viewOptions.map(option => option.icon) const { albums: unsortedAlbums, @@ -114,17 +125,49 @@ - + + - + {/if} {#if $albums.length === 0}