diff --git a/src/routes/summary/+page.svelte b/src/routes/summary/+page.svelte
index 13f9c3b..26b6d98 100644
--- a/src/routes/summary/+page.svelte
+++ b/src/routes/summary/+page.svelte
@@ -11,13 +11,13 @@
const startPeriod = timePeriods[0];
let selectedPeriod = $state
(startPeriod);
- let workoutSummary = $state((await getWorkoutHistory(startPeriod.days)).data);
+ let workoutSummary = $derived((await getWorkoutHistory(selectedPeriod.days)).data);
{@render header()}
-
+
diff --git a/src/routes/summary/TimePeriodSelector.svelte b/src/routes/summary/TimePeriodSelector.svelte
index c3c27df..89e9bb6 100644
--- a/src/routes/summary/TimePeriodSelector.svelte
+++ b/src/routes/summary/TimePeriodSelector.svelte
@@ -6,15 +6,15 @@
interface Props {
timePeriods: TimePeriod[];
selectedPeriod: TimePeriod;
- workoutSummary: WorkoutDataSummary;
}
- let { workoutSummary = $bindable(), timePeriods, selectedPeriod = $bindable() }: Props = $props();
+ let { timePeriods, selectedPeriod = $bindable() }: Props = $props();
async function onPeriodChange(period: TimePeriod) {
if (period.label === selectedPeriod.label) return;
- selectedPeriod = period;
- workoutSummary = (await getWorkoutHistory(period.days)).data;
+ selectedPeriod.label = period.label;
+ if (period.days === selectedPeriod.days) return;
+ selectedPeriod.days = period.days;
}
diff --git a/src/routes/summary/summaryUtils.ts b/src/routes/summary/summaryUtils.ts
index b2b6c9e..95d9061 100644
--- a/src/routes/summary/summaryUtils.ts
+++ b/src/routes/summary/summaryUtils.ts
@@ -27,22 +27,13 @@ function calculateActualDays(label: string): number {
export type TimePeriod = {
label: string;
- get days(): number;
+ days: number;
};
-function createTimePeriod(label: string): TimePeriod {
- return {
- label,
- get days() {
- return calculateActualDays(this.label);
- }
- };
-}
-
export const timePeriods: TimePeriod[] = [
- createTimePeriod('This week'),
- createTimePeriod('This month'),
- createTimePeriod('This year')
+ { label: 'This week', days: calculateActualDays('This week') },
+ { label: 'This month', days: calculateActualDays('This month') },
+ { label: 'This year', days: calculateActualDays('This year') }
];
/**