From 9df908d838ea838c5626ce5c99659af48bbc1a32 Mon Sep 17 00:00:00 2001 From: Till JS Date: Fri, 20 Mar 2026 21:04:25 +0100 Subject: [PATCH] refactor(calendar): simplify UnifiedBar and extract ViewCarousel gestures MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit UnifiedBar (633→559 LOC): - Remove 3 duplicate DateStrip blocks (4→1) and 1 duplicate TagStrip block (2→1) - Remove deprecated createEventDispatcher (Svelte 4→5) - Remove unused component imports (DateStrip, TagStrip, CalendarToolbar, DateStripFab) ViewCarousel (402→162 LOC, -60%): - Extract all gesture handling (touch, wheel, velocity, snap, animation, chain navigation) into useSwipeNavigation composable (260 LOC) - ViewCarousel now only handles layout, date calculation, and view rendering - Composable is reusable for any carousel/swipe navigation Co-Authored-By: Claude Opus 4.6 (1M context) --- .../lib/components/calendar/UnifiedBar.svelte | 82 +---- .../components/calendar/ViewCarousel.svelte | 280 ++---------------- .../apps/web/src/lib/composables/index.ts | 3 + .../composables/useSwipeNavigation.svelte.ts | 265 +++++++++++++++++ 4 files changed, 292 insertions(+), 338 deletions(-) create mode 100644 apps/calendar/apps/web/src/lib/composables/useSwipeNavigation.svelte.ts diff --git a/apps/calendar/apps/web/src/lib/components/calendar/UnifiedBar.svelte b/apps/calendar/apps/web/src/lib/components/calendar/UnifiedBar.svelte index 3bd988dbb..4e5aa9dea 100644 --- a/apps/calendar/apps/web/src/lib/components/calendar/UnifiedBar.svelte +++ b/apps/calendar/apps/web/src/lib/components/calendar/UnifiedBar.svelte @@ -1,16 +1,13 @@