bugfix dashboard
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "vibefinance-frontend",
|
||||
"version": "1.0.8",
|
||||
"version": "1.0.10-dev",
|
||||
"private": true,
|
||||
"type": "module",
|
||||
"scripts": {
|
||||
|
||||
@@ -179,9 +179,13 @@ function MiniLineChart({ vData, fiatData, darkMode, T }) {
|
||||
const mx = Math.max(...vals, ...fVals) * 1.05;
|
||||
const rng = mx - mn || 1;
|
||||
const iW = W - pl - pr, iH = H - pt - pb;
|
||||
// Eén label "sep '26" is bij deze lettergrootte ongeveer 46px breed. Zoveel
|
||||
// passen er dus naast elkaar; de rest wordt overgeslagen.
|
||||
const labelStap = Math.max(1, Math.ceil(vData.length / Math.max(1, Math.floor(iW / 46))));
|
||||
// Eén label "sep '26" is bij deze lettergrootte ongeveer 54px breed inclusief
|
||||
// wat lucht ernaast. Zoveel passen er naast elkaar; de rest wordt
|
||||
// overgeslagen. De stap telt vanaf het láátste punt terug, niet vanaf het
|
||||
// eerste: dat punt is de datum waar je naar kijkt en moet er altijd bij staan.
|
||||
// Forceerden we hem er los bovenop, dan botste hij op willekeurige afstand
|
||||
// tegen zijn voorganger — precies wat er eerst misging.
|
||||
const labelStap = Math.max(1, Math.ceil(vData.length / Math.max(1, Math.floor(iW / 54))));
|
||||
const xs = vData.map((_, i) => pl + (i / Math.max(vData.length - 1, 1)) * iW);
|
||||
const ys = vals.map((v) => pt + (1 - (v - mn) / rng) * iH);
|
||||
const fYs = fVals.map((v) => pt + (1 - (v - mn) / rng) * iH);
|
||||
@@ -316,7 +320,9 @@ function MiniLineChart({ vData, fiatData, darkMode, T }) {
|
||||
kijkt. De exacte dag lees je in de tooltip. */}
|
||||
{xs.map((x, i) => {
|
||||
const laatste = i === xs.length - 1;
|
||||
if (i % labelStap !== 0 && !laatste) return null;
|
||||
// Terugtellen vanaf het eind: het laatste punt valt zo vanzelf op een
|
||||
// stap en houdt volle afstand tot zijn voorganger.
|
||||
if ((xs.length - 1 - i) % labelStap !== 0) return null;
|
||||
return (
|
||||
<g key={i}>
|
||||
<line x1={x} y1={pt + iH} x2={x} y2={pt + iH + 4}
|
||||
|
||||
@@ -20,8 +20,10 @@ function SvgLineChart({ pts, lines, T, H = 200 }) {
|
||||
// pb was 62 voor gedraaide datumlabels. Die staan nu rechtop en zijn korter.
|
||||
const W = 700, pl = 64, pr = 16, pt2 = 16, pb = 34;
|
||||
const iW = W - pl - pr, iH = H - pt2 - pb;
|
||||
// Eén label "sep '26" is ongeveer 46px breed; zoveel passen er naast elkaar.
|
||||
const labelStap = Math.max(1, Math.ceil(pts.length / Math.max(1, Math.floor(iW / 46))));
|
||||
// Eén label "sep '26" is ongeveer 54px breed inclusief lucht ernaast. De stap
|
||||
// telt vanaf het laatste punt terug, zodat dat er altijd bij staat zonder op
|
||||
// zijn voorganger te botsen. Zie DashboardTab voor de uitleg.
|
||||
const labelStap = Math.max(1, Math.ceil(pts.length / Math.max(1, Math.floor(iW / 54))));
|
||||
const allVals = lines.flatMap((l) => pts.map((p) => p[l.key] ?? 0));
|
||||
const dataMin = Math.min(...allVals);
|
||||
const dataMax = Math.max(...allVals);
|
||||
@@ -116,7 +118,8 @@ function SvgLineChart({ pts, lines, T, H = 200 }) {
|
||||
onleesbare band. De exacte dag staat in de tooltip op elk punt. */}
|
||||
{pts.map((p, i) => {
|
||||
const laatste = i === pts.length - 1;
|
||||
if (i % labelStap !== 0 && !laatste) return null;
|
||||
// Terugtellen vanaf het eind, zodat het laatste punt op een stap valt.
|
||||
if ((pts.length - 1 - i) % labelStap !== 0) return null;
|
||||
return (
|
||||
<g key={i}>
|
||||
<line x1={xp(i)} y1={pt2 + iH} x2={xp(i)} y2={pt2 + iH + 4}
|
||||
|
||||
Reference in New Issue
Block a user