From dd612f653509c422f057de5c80308f7c8db78bd5 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Tue, 21 Apr 2026 07:54:29 +0200 Subject: [PATCH] fix(fitness): persist activityType when picking GPS activity MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit The active-workout activity picker updated local state + workout.name but never synced workout.activityType, so every hiking/walking/cycling workout was saved with an inner exercise of 'running'. That silently applied the wrong kcal model — running Minetti for hiking/walking (~43% overestimate) and running instead of the cycling physics model (large overestimate for cycling). Adds an activityType setter on the workout store and invokes it from selectActivity() so the saved session's exercise matches the picked activity. --- package.json | 2 +- src/lib/js/workout.svelte.ts | 1 + .../[active=fitnessActive]/+page.svelte | 1 + 3 files changed, 3 insertions(+), 1 deletion(-) diff --git a/package.json b/package.json index c7a6c715..1ae6dbfe 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homepage", - "version": "1.37.5", + "version": "1.37.6", "private": true, "type": "module", "scripts": { diff --git a/src/lib/js/workout.svelte.ts b/src/lib/js/workout.svelte.ts index eb4366d9..a251b0ba 100644 --- a/src/lib/js/workout.svelte.ts +++ b/src/lib/js/workout.svelte.ts @@ -714,6 +714,7 @@ export function createWorkout() { get paused() { return paused; }, get mode() { return mode; }, get activityType() { return activityType; }, + set activityType(v: GpsActivityType | null) { activityType = v; _persist(); }, get name() { return name; }, set name(v: string) { name = v; _persist(); }, get templateId() { return templateId; }, diff --git a/src/routes/fitness/[workout=fitnessWorkout]/[active=fitnessActive]/+page.svelte b/src/routes/fitness/[workout=fitnessWorkout]/[active=fitnessActive]/+page.svelte index 0b0132c7..18ea7145 100644 --- a/src/routes/fitness/[workout=fitnessWorkout]/[active=fitnessActive]/+page.svelte +++ b/src/routes/fitness/[workout=fitnessWorkout]/[active=fitnessActive]/+page.svelte @@ -252,6 +252,7 @@ function selectActivity(/** @type {string} */ id) { selectedActivity = /** @type {import('$lib/js/workout.svelte').GpsActivityType} */ (id); const labels = { running: 'Running', walking: 'Walking', cycling: 'Cycling', hiking: 'Hiking' }; + workout.activityType = selectedActivity; workout.name = labels[selectedActivity] ?? 'GPS Workout'; showActivityPicker = false; }