From bb434d40dc05b8535bb75e0fe8149f30783cdb8a Mon Sep 17 00:00:00 2001 From: Justin Edmund Date: Thu, 19 Jun 2025 11:27:21 +0100 Subject: [PATCH] Change default view --- .../components/ThreeColumnPhotoGrid.svelte | 290 ++++++++++++++++++ src/lib/components/ViewModeSelector.svelte | 71 ++--- src/routes/photos/+page.svelte | 4 +- 3 files changed, 325 insertions(+), 40 deletions(-) create mode 100644 src/lib/components/ThreeColumnPhotoGrid.svelte diff --git a/src/lib/components/ThreeColumnPhotoGrid.svelte b/src/lib/components/ThreeColumnPhotoGrid.svelte new file mode 100644 index 0000000..2c9d347 --- /dev/null +++ b/src/lib/components/ThreeColumnPhotoGrid.svelte @@ -0,0 +1,290 @@ + + +
+ {#each gridItems as { item, spanFull }} + + {/each} +
+ + diff --git a/src/lib/components/ViewModeSelector.svelte b/src/lib/components/ViewModeSelector.svelte index cf2a21f..fdbbe2f 100644 --- a/src/lib/components/ViewModeSelector.svelte +++ b/src/lib/components/ViewModeSelector.svelte @@ -16,25 +16,12 @@ onWidthChange?: (width: 'normal' | 'wide') => void } - let { - mode = 'masonry', - width = 'normal', - onModeChange, - onWidthChange - }: Props = $props() + let { mode = 'two-column', width = 'wide', onModeChange, onWidthChange }: Props = $props()
- - - - +
- + {#if mode !== 'horizontal'}
- +
- - + +
{/if}
@@ -96,18 +91,18 @@ align-items: center; gap: $unit-2x; box-shadow: 0 1px 3px rgba(0, 0, 0, 0.1); - + @include breakpoint('phone') { display: none; } } - + .mode-section, .width-section { display: flex; gap: $unit-half; } - + .separator { flex: 1; min-width: $unit-2x; diff --git a/src/routes/photos/+page.svelte b/src/routes/photos/+page.svelte index 0461b68..45c01a2 100644 --- a/src/routes/photos/+page.svelte +++ b/src/routes/photos/+page.svelte @@ -28,7 +28,7 @@ // Initialize view mode from URL or default const urlMode = $page.url.searchParams.get('view') as ViewMode let viewMode = $state( - urlMode && ['masonry', 'single', 'two-column', 'horizontal'].includes(urlMode) ? urlMode : 'masonry' + urlMode && ['masonry', 'single', 'two-column', 'horizontal'].includes(urlMode) ? urlMode : 'two-column' ) // Track loaded photo IDs to prevent duplicates @@ -46,7 +46,7 @@ viewMode = mode if (browser) { const url = new URL($page.url) - if (mode === 'masonry') { + if (mode === 'two-column') { url.searchParams.delete('view') } else { url.searchParams.set('view', mode)