diff --git a/src/routes/fitness/[measure=fitnessMeasure]/add/+page.svelte b/src/routes/fitness/[measure=fitnessMeasure]/add/+page.svelte
index 0987ca54..663cf5ed 100644
--- a/src/routes/fitness/[measure=fitnessMeasure]/add/+page.svelte
+++ b/src/routes/fitness/[measure=fitnessMeasure]/add/+page.svelte
@@ -3,12 +3,23 @@
import { goto } from '$app/navigation';
import { detectFitnessLang, t } from '$lib/js/fitnessI18n';
import { toast } from '$lib/js/toast.svelte';
+ import { Weight, Percent, Ruler, ChevronDown, Plus, Minus, X } from '@lucide/svelte';
import SaveFab from '$lib/components/SaveFab.svelte';
const lang = $derived(detectFitnessLang($page.url.pathname));
const measureSlug = $derived(lang === 'en' ? 'measure' : 'messen');
let saving = $state(false);
+ let lastWeight = $state(/** @type {number|null} */ (null));
+
+ $effect(() => {
+ fetch('/api/fitness/measurements/latest')
+ .then(r => r.ok ? r.json() : null)
+ .then(d => {
+ if (d?.weight?.value != null) lastWeight = d.weight.value;
+ })
+ .catch(() => {});
+ });
let formDate = $state(new Date().toISOString().slice(0, 10));
let formWeight = $state('');
@@ -27,6 +38,14 @@
let formCalvesL = $state('');
let formCalvesR = $state('');
+ function stepWeight(delta) {
+ const cur = Number(formWeight) || lastWeight || 0;
+ formWeight = String(Math.round((cur + delta) * 10) / 10);
+ }
+
+ let showBodyFat = $state(false);
+ let showBodyParts = $state(false);
+
function buildBody() {
/** @type {any} */
const body = { date: formDate };
@@ -80,52 +99,121 @@