import { RECOVERY_HISTORY_VIZ_WIDGET_DEFAULTS, normalizeRecoveryHistoryVizConfig } from './recoveryHistoryVizConfig' const CHART_TOGGLES = [ { key: 'show_chart_recovery_score', label: 'HRV-/Recovery-Score-Verlauf' }, { key: 'show_chart_sleep_quality', label: 'Schlaf: Dauer & Qualität' }, { key: 'show_chart_sleep_debt', label: 'Schlafschuld' }, { key: 'show_chart_hrv_rhr', label: 'HRV & Ruhepuls (Zeitverlauf)' }, ] const SECTION_TOGGLES = [ { key: 'show_sleep_section_heading', label: 'Zwischenüberschrift «Schlaf & Erholung»' }, { key: 'show_heart_section_heading', label: 'Zwischenüberschrift «Herz & Kreislauf»' }, { key: 'show_heart_context_card', label: 'Herz: Einordnung, Zonen, Snapshots' }, { key: 'show_vitals_extra_heading', label: 'Überschrift «Weitere Vitalparameter»' }, { key: 'show_vitals_extra_trends', label: 'VO2 / SpO2 / Atemfrequenz (Verläufe)' }, ] const OTHER_TOGGLES = [ { key: 'show_layer_meta', label: 'Meta-Zeile (Fenster-Tage, Data-Layer)' }, { key: 'show_kpis', label: 'KPI-Kacheln' }, { key: 'show_progress_insights', label: 'Überblick: Recovery & Schlaf (Karten)' }, ] /** * @param {{ config: Record, onChange: (next: Record) => void }} props */ export default function RecoveryHistoryVizConfigEditor({ config, onChange }) { const merged = normalizeRecoveryHistoryVizConfig(config) const patch = (partial) => { const next = { ...merged, ...partial } const def = RECOVERY_HISTORY_VIZ_WIDGET_DEFAULTS const stored = {} for (const k of Object.keys(def)) { if (next[k] !== def[k]) stored[k] = next[k] } onChange(stored) } const setBool = (key, checked) => { patch({ [key]: checked }) } return (
Erholung (Verlauf-Bundle): welche Blöcke auf der Übersicht erscheinen. Unbelegte Felder = schlanker Standard (KPI kompakt, Schlaf-Charts, HRV/RHR — ohne Kontextkarte und Extra-Vitals).
KPI-Umfang
Bereiche
{OTHER_TOGGLES.map(({ key, label }) => ( ))}
Abschnitte
{SECTION_TOGGLES.map(({ key, label }) => ( ))}
Charts
{CHART_TOGGLES.map(({ key, label }) => ( ))}
) }