[MINOR] WeightChart 30/365-dagen filter toont verkeerde data bij <2 punten #12

Open
opened 2026-08-05 21:11:39 +02:00 by eddy · 0 comments
Owner

Probleem

src/components/WeightChart.tsx:63-68:

const filterData = (days: number) => {
  const cutoff = new Date();
  cutoff.setDate(cutoff.getDate() - days);
  const filtered = sorted.filter(m => new Date(m.measuredAt) >= cutoff);
  return filtered.length >= 2 ? filtered : sorted;
};

Als er <2 metingen in de geselecteerde periode (30 of 365 dagen) zijn, valt de functie terug op ALLE data. Een chart met label "30 dagen" toont dan data van mogelijk maanden of jaren.

Oplossing

Retourneer altijd de gefilterde data, ongeacht de grootte. Pas de SingleChart component aan zodat die 0 of 1 datapunt kan weergeven:

const filterData = (days: number) => {
  const cutoff = new Date();
  cutoff.setDate(cutoff.getDate() - days);
  return sorted.filter(m => new Date(m.measuredAt) >= cutoff);
};

En in de render: als filtered.length < 2, toon een bericht als "Niet genoeg data voor deze periode" in plaats van misleidende data met het juiste label.

Als alternatief: disable de "30 dagen" / "365 dagen" knoppen als er onvoldoende data is voor die periode.

## Probleem `src/components/WeightChart.tsx:63-68`: ```ts const filterData = (days: number) => { const cutoff = new Date(); cutoff.setDate(cutoff.getDate() - days); const filtered = sorted.filter(m => new Date(m.measuredAt) >= cutoff); return filtered.length >= 2 ? filtered : sorted; }; ``` Als er <2 metingen in de geselecteerde periode (30 of 365 dagen) zijn, valt de functie terug op ALLE data. Een chart met label "30 dagen" toont dan data van mogelijk maanden of jaren. ## Oplossing Retourneer altijd de gefilterde data, ongeacht de grootte. Pas de `SingleChart` component aan zodat die 0 of 1 datapunt kan weergeven: ```ts const filterData = (days: number) => { const cutoff = new Date(); cutoff.setDate(cutoff.getDate() - days); return sorted.filter(m => new Date(m.measuredAt) >= cutoff); }; ``` En in de render: als `filtered.length < 2`, toon een bericht als "Niet genoeg data voor deze periode" in plaats van misleidende data met het juiste label. Als alternatief: disable de "30 dagen" / "365 dagen" knoppen als er onvoldoende data is voor die periode.
Sign in to join this conversation.
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set

Reference
eddy/weegschaal-app#12
No description provided.