fix(fitness): update slug + rename measureSlug → checkinSlug
Four pages had their own hardcoded `measureSlug = lang === 'en' ? 'measure' : 'messen'` derived — all still pointing at the old route. Bumped the value to check-in / erfassung and renamed the variable so future drift of this kind is easier to grep for. Affects links from: - /fitness/check-in → body-parts card, inline "Edit all fields" - body-parts flow → back / cancel navigation - full-edit page → save / delete navigation - /fitness/stats/history/[part] → "measure this now" CTA
This commit is contained in:
+1
-1
@@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "homepage",
|
"name": "homepage",
|
||||||
"version": "1.46.10",
|
"version": "1.46.11",
|
||||||
"private": true,
|
"private": true,
|
||||||
"type": "module",
|
"type": "module",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
@@ -16,7 +16,7 @@
|
|||||||
);
|
);
|
||||||
|
|
||||||
const lang = $derived(detectFitnessLang($page.url.pathname));
|
const lang = $derived(detectFitnessLang($page.url.pathname));
|
||||||
const measureSlug = $derived(lang === 'en' ? 'measure' : 'messen');
|
const checkinSlug = $derived(lang === 'en' ? 'check-in' : 'erfassung');
|
||||||
import { getWorkout } from '$lib/js/workout.svelte';
|
import { getWorkout } from '$lib/js/workout.svelte';
|
||||||
import PeriodTracker from '$lib/components/fitness/PeriodTracker.svelte';
|
import PeriodTracker from '$lib/components/fitness/PeriodTracker.svelte';
|
||||||
|
|
||||||
@@ -529,7 +529,7 @@
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
<a class="bp-card" href="/fitness/{measureSlug}/body-parts">
|
<a class="bp-card" href="/fitness/{checkinSlug}/body-parts">
|
||||||
<div class="bp-figure" aria-hidden="true">
|
<div class="bp-figure" aria-hidden="true">
|
||||||
<div class="muscle-base">{@html bpFrontSvg}</div>
|
<div class="muscle-base">{@html bpFrontSvg}</div>
|
||||||
<svg class="dot-overlay" viewBox="0 {BP_VIEW_TOP} 660.46 {BP_VIEW_H}" preserveAspectRatio="xMidYMid meet">
|
<svg class="dot-overlay" viewBox="0 {BP_VIEW_TOP} 660.46 {BP_VIEW_H}" preserveAspectRatio="xMidYMid meet">
|
||||||
@@ -621,7 +621,7 @@
|
|||||||
<span class="edit-unit">%</span>
|
<span class="edit-unit">%</span>
|
||||||
</div>
|
</div>
|
||||||
<div class="edit-actions">
|
<div class="edit-actions">
|
||||||
<a class="edit-more" href="/fitness/{measureSlug}/edit/{m._id}" aria-label={t('edit_measurement', lang)}>
|
<a class="edit-more" href="/fitness/{checkinSlug}/edit/{m._id}" aria-label={t('edit_measurement', lang)}>
|
||||||
<Pencil size={11} />
|
<Pencil size={11} />
|
||||||
<span class="edit-more-label">{lang === 'en' ? 'Edit all fields' : 'Alle Felder bearbeiten'}</span>
|
<span class="edit-more-label">{lang === 'en' ? 'Edit all fields' : 'Alle Felder bearbeiten'}</span>
|
||||||
<ChevronRight size={11} />
|
<ChevronRight size={11} />
|
||||||
|
|||||||
@@ -15,7 +15,7 @@
|
|||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
|
|
||||||
const lang = $derived(detectFitnessLang($page.url.pathname));
|
const lang = $derived(detectFitnessLang($page.url.pathname));
|
||||||
const measureSlug = $derived(lang === 'en' ? 'measure' : 'messen');
|
const checkinSlug = $derived(lang === 'en' ? 'check-in' : 'erfassung');
|
||||||
|
|
||||||
/** @typedef {{ key: string, labelKey: string, img: string | null, paired: boolean, tipKey: string, dbSingle?: string, dbLeft?: string, dbRight?: string }} Step */
|
/** @typedef {{ key: string, labelKey: string, img: string | null, paired: boolean, tipKey: string, dbSingle?: string, dbLeft?: string, dbRight?: string }} Step */
|
||||||
|
|
||||||
@@ -241,7 +241,7 @@
|
|||||||
}
|
}
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
toast.success(lang === 'en' ? 'Measurement saved' : 'Messung gespeichert');
|
toast.success(lang === 'en' ? 'Measurement saved' : 'Messung gespeichert');
|
||||||
await goto(`/fitness/${measureSlug}`);
|
await goto(`/fitness/${checkinSlug}`);
|
||||||
} else {
|
} else {
|
||||||
const err = await res.json().catch(() => null);
|
const err = await res.json().catch(() => null);
|
||||||
toast.error(err?.error ?? 'Failed to save measurement');
|
toast.error(err?.error ?? 'Failed to save measurement');
|
||||||
@@ -251,7 +251,7 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
function exit() {
|
function exit() {
|
||||||
goto(`/fitness/${measureSlug}`);
|
goto(`/fitness/${checkinSlug}`);
|
||||||
}
|
}
|
||||||
|
|
||||||
// ----- Chart -----
|
// ----- Chart -----
|
||||||
|
|||||||
@@ -9,7 +9,7 @@
|
|||||||
import DatePicker from '$lib/components/DatePicker.svelte';
|
import DatePicker from '$lib/components/DatePicker.svelte';
|
||||||
|
|
||||||
const lang = $derived(detectFitnessLang($page.url.pathname));
|
const lang = $derived(detectFitnessLang($page.url.pathname));
|
||||||
const measureSlug = $derived(lang === 'en' ? 'measure' : 'messen');
|
const checkinSlug = $derived(lang === 'en' ? 'check-in' : 'erfassung');
|
||||||
|
|
||||||
let { data } = $props();
|
let { data } = $props();
|
||||||
// svelte-ignore state_referenced_locally
|
// svelte-ignore state_referenced_locally
|
||||||
@@ -73,7 +73,7 @@
|
|||||||
body: JSON.stringify(buildBody())
|
body: JSON.stringify(buildBody())
|
||||||
});
|
});
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
await goto(`/fitness/${measureSlug}`);
|
await goto(`/fitness/${checkinSlug}`);
|
||||||
} else {
|
} else {
|
||||||
const err = await res.json().catch(() => null);
|
const err = await res.json().catch(() => null);
|
||||||
toast.error(err?.error ?? 'Failed to save measurement');
|
toast.error(err?.error ?? 'Failed to save measurement');
|
||||||
@@ -88,7 +88,7 @@
|
|||||||
try {
|
try {
|
||||||
const res = await fetch(`/api/fitness/measurements/${m._id}`, { method: 'DELETE' });
|
const res = await fetch(`/api/fitness/measurements/${m._id}`, { method: 'DELETE' });
|
||||||
if (res.ok) {
|
if (res.ok) {
|
||||||
await goto(`/fitness/${measureSlug}`);
|
await goto(`/fitness/${checkinSlug}`);
|
||||||
} else {
|
} else {
|
||||||
const err = await res.json().catch(() => null);
|
const err = await res.json().catch(() => null);
|
||||||
toast.error(err?.error ?? 'Failed to delete measurement');
|
toast.error(err?.error ?? 'Failed to delete measurement');
|
||||||
|
|||||||
+2
-2
@@ -9,7 +9,7 @@
|
|||||||
|
|
||||||
const lang = $derived(detectFitnessLang($page.url.pathname));
|
const lang = $derived(detectFitnessLang($page.url.pathname));
|
||||||
const statsSlug = $derived(lang === 'en' ? 'stats' : 'statistik');
|
const statsSlug = $derived(lang === 'en' ? 'stats' : 'statistik');
|
||||||
const measureSlug = $derived(lang === 'en' ? 'measure' : 'messen');
|
const checkinSlug = $derived(lang === 'en' ? 'check-in' : 'erfassung');
|
||||||
const card = $derived(data.card);
|
const card = $derived(data.card);
|
||||||
|
|
||||||
const historyAsc = $derived(
|
const historyAsc = $derived(
|
||||||
@@ -169,7 +169,7 @@
|
|||||||
{#if !hasData}
|
{#if !hasData}
|
||||||
<div class="empty">
|
<div class="empty">
|
||||||
<p>{t('no_measurements_yet', lang)}</p>
|
<p>{t('no_measurements_yet', lang)}</p>
|
||||||
<a class="cta" href="/fitness/{measureSlug}/body-parts">
|
<a class="cta" href="/fitness/{checkinSlug}/body-parts">
|
||||||
<Ruler size={16} /> {t('measure_body_parts', lang)}
|
<Ruler size={16} /> {t('measure_body_parts', lang)}
|
||||||
</a>
|
</a>
|
||||||
</div>
|
</div>
|
||||||
|
|||||||
Reference in New Issue
Block a user