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}