diff --git a/src/assets/icons/view-grid.svg b/src/assets/icons/view-grid.svg new file mode 100644 index 0000000..c8c96fa --- /dev/null +++ b/src/assets/icons/view-grid.svg @@ -0,0 +1,12 @@ + + + + + + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/view-masonry.svg b/src/assets/icons/view-masonry.svg new file mode 100644 index 0000000..caecb48 --- /dev/null +++ b/src/assets/icons/view-masonry.svg @@ -0,0 +1,7 @@ + + + + + + + \ No newline at end of file diff --git a/src/assets/icons/view-single.svg b/src/assets/icons/view-single.svg new file mode 100644 index 0000000..4b89627 --- /dev/null +++ b/src/assets/icons/view-single.svg @@ -0,0 +1,4 @@ + + + + \ No newline at end of file diff --git a/src/lib/components/SingleColumnPhotoGrid.svelte b/src/lib/components/SingleColumnPhotoGrid.svelte new file mode 100644 index 0000000..c21a21a --- /dev/null +++ b/src/lib/components/SingleColumnPhotoGrid.svelte @@ -0,0 +1,60 @@ + + +
+ {#each photoItems as item} +
+ + {#if !isAlbum(item) && item.caption} +
+

{item.caption}

+
+ {/if} +
+ {/each} +
+ + \ No newline at end of file diff --git a/src/lib/components/ThreeColumnPhotoGrid.svelte b/src/lib/components/ThreeColumnPhotoGrid.svelte new file mode 100644 index 0000000..75a7f9a --- /dev/null +++ b/src/lib/components/ThreeColumnPhotoGrid.svelte @@ -0,0 +1,297 @@ + + +
+ {#each gridItems as { item, spanFull }} + + {/each} +
+ + + diff --git a/src/lib/components/ViewModeSelector.svelte b/src/lib/components/ViewModeSelector.svelte new file mode 100644 index 0000000..c43a182 --- /dev/null +++ b/src/lib/components/ViewModeSelector.svelte @@ -0,0 +1,78 @@ + + +
+ {#each viewModes as { mode, icon: Icon, label }} + + {/each} +
+ + + diff --git a/src/routes/api/photos/+server.ts b/src/routes/api/photos/+server.ts index a9a0e32..9327a5f 100644 --- a/src/routes/api/photos/+server.ts +++ b/src/routes/api/photos/+server.ts @@ -112,7 +112,7 @@ export const GET: RequestHandler = async (event) => { description: album.description || undefined, coverPhoto: { id: `cover-${firstMedia.id}`, - src: firstMedia.thumbnailUrl || firstMedia.url, + src: firstMedia.url, alt: firstMedia.photoCaption || album.title, caption: firstMedia.photoCaption || undefined, width: firstMedia.width || 400, @@ -120,7 +120,7 @@ export const GET: RequestHandler = async (event) => { }, photos: album.media.map((albumMedia) => ({ id: `media-${albumMedia.media.id}`, - src: albumMedia.media.thumbnailUrl || albumMedia.media.url, + src: albumMedia.media.url, alt: albumMedia.media.photoCaption || albumMedia.media.filename, caption: albumMedia.media.photoCaption || undefined, width: albumMedia.media.width || 400, @@ -137,7 +137,7 @@ export const GET: RequestHandler = async (event) => { return { id: `media-${media.id}`, - src: media.thumbnailUrl || media.url, + src: media.url, alt: media.photoTitle || media.photoCaption || media.filename, caption: media.photoCaption || undefined, width: media.width || 400, diff --git a/src/routes/photos/+page.svelte b/src/routes/photos/+page.svelte index d3dac2a..77c23cd 100644 --- a/src/routes/photos/+page.svelte +++ b/src/routes/photos/+page.svelte @@ -1,9 +1,14 @@