From 5915fd323d7ff1fede263fcbed1a410ea802c8c0 Mon Sep 17 00:00:00 2001 From: Alexander Bocken Date: Tue, 21 Apr 2026 12:18:33 +0200 Subject: [PATCH] fix(fitness): seed body-part inputs from last record MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Placeholders and +/- fallback now use the most recent recorded value per part; previously placeholders were hardcoded "—" and +/- bumped from 0. Buttons step by 0.5 cm (manual input still accepts 0.1 resolution). --- package.json | 2 +- .../body-parts/+page.svelte | 42 ++++++++++++------- 2 files changed, 29 insertions(+), 15 deletions(-) diff --git a/package.json b/package.json index 81d20972..99d56b9d 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "homepage", - "version": "1.40.4", + "version": "1.40.5", "private": true, "type": "module", "scripts": { diff --git a/src/routes/fitness/[measure=fitnessMeasure]/body-parts/+page.svelte b/src/routes/fitness/[measure=fitnessMeasure]/body-parts/+page.svelte index 85c42079..20ef8ac2 100644 --- a/src/routes/fitness/[measure=fitnessMeasure]/body-parts/+page.svelte +++ b/src/routes/fitness/[measure=fitnessMeasure]/body-parts/+page.svelte @@ -72,13 +72,27 @@ const step = $derived(steps[idx] ?? steps[0]); const done = $derived(idx >= total); + const lastForStep = $derived.by(() => { + const h = historyFor(step); + return h.length > 0 ? h.at(-1) : null; + }); + /** @param {number | null | undefined} n */ + function ph(n) { + return n != null ? String(n) : '—'; + } + /** @param {string} key @param {'left'|'right'|null} side @param {number} delta */ function bump(key, side, delta) { + const s = steps.find((x) => x.key === key); + const last = s ? historyFor(s).at(-1) : null; if (side) { - const cur = Number(values[key][side]) || 0; + const raw = values[key][side]; + const fallback = side === 'left' ? last?.left : last?.right; + const cur = raw !== '' ? Number(raw) : (fallback ?? 0); values[key][side] = String(Math.round((cur + delta) * 10) / 10); } else { - const cur = Number(values[key]) || 0; + const raw = values[key]; + const cur = raw !== '' ? Number(raw) : (last?.value ?? 0); values[key] = String(Math.round((cur + delta) * 10) / 10); } } @@ -376,14 +390,14 @@ {@const pv = values[step.key]} {#if pv.same}
onWheel(e, step.key, 'left')}> -
- + cm
-
@@ -391,23 +405,23 @@
onWheel(e, step.key, 'left')}> L - - + cm -
onWheel(e, step.key, 'right')}> R - - + cm -
@@ -422,14 +436,14 @@ {:else}
onWheel(e, step.key, null)}> -
- + cm
-