- Introduced the `recovery_history_viz` widget to the dashboard, enabling users to visualize recovery history data. - Updated widget configuration to include `recovery_history_viz` in the allowed widgets and added validation for its configuration. - Enhanced the widget catalog with details for the new `recovery_history_viz` entry. - Implemented default values and validation logic for the widget's configuration, ensuring proper handling of user inputs. - Added tests to ensure proper validation of the `recovery_history_viz` widget configuration. - Bumped application version to reflect the addition of the new widget.
33 lines
1.3 KiB
JavaScript
33 lines
1.3 KiB
JavaScript
import { useNavigate } from 'react-router-dom'
|
|
import RecoveryDashboardOverview from '../RecoveryDashboardOverview'
|
|
import { normalizeBodyChartDays } from '../../widgetSystem/bodyChartDays'
|
|
|
|
/**
|
|
* Erholung Layer 2b (ein Bundle-Request). Link zum Verlauf unter Fitness.
|
|
* @param {{ refreshTick?: number, chartDays?: number }} props
|
|
*/
|
|
export default function RecoveryChartsPanelWidget({ refreshTick = 0, chartDays }) {
|
|
const nav = useNavigate()
|
|
const days = chartDays != null ? normalizeBodyChartDays(chartDays) : 28
|
|
|
|
return (
|
|
<div style={{ marginBottom: 16 }}>
|
|
<div style={{ display: 'flex', justifyContent: 'space-between', alignItems: 'center', marginBottom: 10 }}>
|
|
<div>
|
|
<div style={{ fontSize: 14, fontWeight: 700, color: 'var(--text1)' }}>Erholung — Übersicht</div>
|
|
<div style={{ fontSize: 12, color: 'var(--text3)' }}>Schlaf, Recovery, Vitalwerte · {days} Tage</div>
|
|
</div>
|
|
<button
|
|
type="button"
|
|
className="btn btn-secondary"
|
|
style={{ fontSize: 12, padding: '6px 12px' }}
|
|
onClick={() => nav('/history', { state: { tab: 'activity' } })}
|
|
>
|
|
Verlauf →
|
|
</button>
|
|
</div>
|
|
<RecoveryDashboardOverview key={`${refreshTick}-${days}`} externalPeriod={days} hidePeriodSelector />
|
|
</div>
|
|
)
|
|
}
|