From de0e2184403afc5b74985ea3972026c9d15a9570 Mon Sep 17 00:00:00 2001 From: James Date: Fri, 27 Jan 2023 09:32:26 -0500 Subject: [PATCH] feat(web): add Favorites page (#1397) * Duplicate photos page and rename to favorites * Implement basic functionality to page * Sort imports * Add missing sharing code * Remove unused import * Fix formatting * Use GalleryViewer and new api endpoint * Merge useFavorites into page * Run prettier * Move favorites in side-bar * Remove favorites when unfavorited * Fix close shared link model * Add favorite count to side-bar * Add add to favorites option * Fix formatting * Add favorite icon to image thumbnails * Change var to let --- .../asset-viewer/asset-viewer.svelte | 21 +-- .../shared-components/immich-thumbnail.svelte | 25 ++-- .../side-bar/side-bar.svelte | 56 ++++++- web/src/lib/constants.ts | 1 + web/src/lib/stores/assets.store.ts | 20 ++- web/src/routes/favorites/+page.server.ts | 21 +++ web/src/routes/favorites/+page.svelte | 140 ++++++++++++++++++ .../favorites/[assetId]/+page.server.ts | 14 ++ .../routes/favorites/[assetId]/+page.svelte | 0 web/src/routes/photos/+page.svelte | 61 +++++--- 10 files changed, 312 insertions(+), 47 deletions(-) create mode 100644 web/src/routes/favorites/+page.server.ts create mode 100644 web/src/routes/favorites/+page.svelte create mode 100644 web/src/routes/favorites/[assetId]/+page.server.ts create mode 100644 web/src/routes/favorites/[assetId]/+page.svelte diff --git a/web/src/lib/components/asset-viewer/asset-viewer.svelte b/web/src/lib/components/asset-viewer/asset-viewer.svelte index b15e6c53d..36819c747 100644 --- a/web/src/lib/components/asset-viewer/asset-viewer.svelte +++ b/web/src/lib/components/asset-viewer/asset-viewer.svelte @@ -1,26 +1,26 @@ + +
+ +
+ +
+ + + + {#if isMultiSelectionMode} + + +

+ Selected {selectedAssets.size} +

+
+ + + + +
+ {/if} + + + {#if isShowCreateSharedLinkModal} + + {/if} + + +
+
+
+
+

Favorites

+
+
+ +
+
+
+ + + {#if favorites.length === 0} +
+ Empty shared album + +

+ Add favorites to quickly find your best pictures and videos +

+
+ {/if} + + +
+
+
diff --git a/web/src/routes/favorites/[assetId]/+page.server.ts b/web/src/routes/favorites/[assetId]/+page.server.ts new file mode 100644 index 000000000..a215862c7 --- /dev/null +++ b/web/src/routes/favorites/[assetId]/+page.server.ts @@ -0,0 +1,14 @@ +import { redirect } from '@sveltejs/kit'; +export const prerender = false; + +import type { PageServerLoad } from './$types'; + +export const load: PageServerLoad = async ({ parent }) => { + const { user } = await parent(); + + if (!user) { + throw redirect(302, '/auth/login'); + } else { + throw redirect(302, '/favorites'); + } +}; diff --git a/web/src/routes/favorites/[assetId]/+page.svelte b/web/src/routes/favorites/[assetId]/+page.svelte new file mode 100644 index 000000000..e69de29bb diff --git a/web/src/routes/photos/+page.svelte b/web/src/routes/photos/+page.svelte index 43208f38e..306f21f46 100644 --- a/web/src/routes/photos/+page.svelte +++ b/web/src/routes/photos/+page.svelte @@ -1,33 +1,33 @@