From 2ba08c51c0313fa3ea2c6f2b9ecd426aa0fa4dbd Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Fri, 20 Mar 2026 14:59:30 +0100 Subject: [PATCH] fitness: fix GPS preview aspect ratio, theme-reactive colors, and UI polish - SessionCard SVG: cosine-corrected coordinates with proper aspect ratio (xMidYMid meet) - SessionCard: use --color-primary for track/distance/pace, add Gauge icon for pace - History detail: theme-reactive pace chart colors via MutationObserver + matchMedia - History detail: add Gauge icon, accent color for distance/pace stats, remove "avg" label - Move GPS remove button from info view to edit screen - Add Leaflet map preview to edit screen - Remove data points count from GPS indicators --- src/lib/components/fitness/SessionCard.svelte | 119 +++++++++++++++-- src/lib/server/simplifyTrack.ts | 103 +++++++++++++++ src/models/WorkoutSession.ts | 30 +++++ src/routes/api/fitness/sessions/+server.ts | 75 +++++++++++ .../api/fitness/sessions/[id]/+server.ts | 24 +++- .../api/fitness/sessions/[id]/gpx/+server.ts | 3 + .../sessions/[id]/recalculate/+server.ts | 121 ++++++++++++++++++ src/routes/fitness/history/[id]/+page.svelte | 107 ++++++++++++++-- 8 files changed, 556 insertions(+), 26 deletions(-) create mode 100644 src/lib/server/simplifyTrack.ts create mode 100644 src/routes/api/fitness/sessions/[id]/recalculate/+server.ts diff --git a/src/lib/components/fitness/SessionCard.svelte b/src/lib/components/fitness/SessionCard.svelte index 69902a4..b2d1994 100644 --- a/src/lib/components/fitness/SessionCard.svelte +++ b/src/lib/components/fitness/SessionCard.svelte @@ -1,6 +1,6 @@ @@ -79,8 +144,24 @@ {formatDate(session.startTime)} · {formatTime(session.startTime)} + {#if svgData} +
+ + + +
+ {/if} +
- {#each session.exercises.slice(0, 4) as ex (ex.exerciseId)} + {#each session.exercises as ex (ex.exerciseId)} {@const exercise = getExerciseById(ex.exerciseId)} {@const label = bestSetLabel(ex.sets, ex.exerciseId)}
@@ -90,17 +171,19 @@ {/if}
{/each} - {#if session.exercises.length > 4} -
+{session.exercises.length - 4} more exercises
- {/if}