From 78fb495ba23711339671d3ed41eead33a5cbc294 Mon Sep 17 00:00:00 2001 From: Till-JS <101404291+Till-JS@users.noreply.github.com> Date: Sun, 14 Dec 2025 23:21:24 +0100 Subject: [PATCH] feat(calendar): add visual scrolling with instant snap MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Restore visual feedback during swipe/scroll gestures: - Track follows finger/trackpad during gesture - Instant page switch when threshold reached (no animation) - 3-panel carousel (prev/current/next) - Simple ~230 lines, no animation complexity 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- .../components/calendar/ViewCarousel.svelte | 156 ++++++++++++++---- 1 file changed, 123 insertions(+), 33 deletions(-) diff --git a/apps/calendar/apps/web/src/lib/components/calendar/ViewCarousel.svelte b/apps/calendar/apps/web/src/lib/components/calendar/ViewCarousel.svelte index 91d12ff3f..e595d0c1f 100644 --- a/apps/calendar/apps/web/src/lib/components/calendar/ViewCarousel.svelte +++ b/apps/calendar/apps/web/src/lib/components/calendar/ViewCarousel.svelte @@ -1,6 +1,7 @@ @@ -109,28 +129,76 @@ bind:this={viewportEl} onwheel={handleWheel} ontouchstart={handleTouchStart} + ontouchmove={handleTouchMove} ontouchend={handleTouchEnd} ontouchcancel={handleTouchCancel} > - {#if viewStore.viewType === 'day'} - - {:else if viewStore.viewType === '5day'} - - {:else if viewStore.viewType === 'week'} - - {:else if viewStore.viewType === '10day'} - - {:else if viewStore.viewType === '14day'} - - {:else if viewStore.viewType === 'month'} - - {:else if viewStore.viewType === 'year'} - - {:else if viewStore.viewType === 'agenda'} - - {:else} - - {/if} +