feat(ios): toggle month view between scroll feed and paged swipe

New device-local setting "Monatsansicht seitenweise wischen" (@AppStorage, no
server sync). Off keeps the continuous vertical scroll feed; on switches the
month view to a paged TabView — one month per screen, six height-filling week
rows, swipe left/right to change month (bounded ±monthsBack/Ahead range to keep
the TabView light). WeekRow gains a fillHeight flag so the same row renders at a
fixed height (scroll) or fills the page evenly (paged); its inner cells/divider
now size to the actual geometry. Paged selection is two-way bound to the store's
current date so prev/next/today and the title stay in sync.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
Scarriffle
2026-07-08 05:15:58 +02:00
parent c4195243c0
commit e55e6c7c92
3 changed files with 113 additions and 39 deletions

View File

@@ -127,6 +127,7 @@ private let strings: [String: [String: String]] = [
"settings.monday": "Montag",
"settings.sunday": "Sonntag",
"settings.dimpast": "Vergangene Termine ausgrauen",
"settings.month_paged": "Monatsansicht seitenweise wischen",
"settings.default_duration": "Standard-Termindauer",
"settings.nav.profile": "Profil",
"settings.privacy": "Privatsphäre",
@@ -458,6 +459,7 @@ private let strings: [String: [String: String]] = [
"settings.monday": "Monday",
"settings.sunday": "Sunday",
"settings.dimpast": "Dim past events",
"settings.month_paged": "Swipe month view as pages",
"settings.default_duration": "Default event duration",
"settings.nav.profile": "Profile",
"settings.privacy": "Privacy",