fix(dashboard): stop graph flicker and show real network growth (#100, #101) #104

Merged
kreativmonkey merged 1 commit from fix-dashboard-graphs into main 2026-06-15 00:22:08 +02:00

Behebt #100 und #101 (beide in DashboardView).

#100 – Flackernde Graphen: Der Dashboard übergab fetchSeries/fetchGrowth als Inline-Arrow-Funktionen → neue Identität bei jedem Eltern-Render (u. a. der 15s-Poll). Dadurch holte DashboardView die Daten ständig neu und sprang jedes Mal kurz auf den „Loading…"-Platzhalter = Flackern. Jetzt sind die Fetcher stabil (useCallback), und ein Sparkline zeigt den Loading-Platzhalter nur noch, bevor die ersten Daten da sind — ein Refresh aktualisiert den Chart an Ort und Stelle.

#101 – Network Trend ohne Wachstum: Der „Network Trend" plottete Tages-Deltas und zeigte als Headline nur das letzte Tages-Delta (meist 0), sodass echtes Follower-Wachstum als „kein Zuwachs" erschien. Jetzt plottet er die kumulative Netzwerkgröße (steigende Linie) und die Headline zeigt die Netto-Änderung über den Zeitraum (letzter − erster Wert, mit Vorzeichen/Farbe).

Verifikation: tsc/Build/Lint sauber; neuer dashboard-charts Playwright-Test (Sparklines rendern, Refresh hält die Charts gemountet, kein „Loading"-Rücksprung) + Screenshot; Regressions-Specs grün (ein isoliert-grüner Auth-Session-Flake ist unabhängig).

🤖 Generated with Claude Code

Behebt #100 und #101 (beide in `DashboardView`). **#100 – Flackernde Graphen:** Der Dashboard übergab `fetchSeries`/`fetchGrowth` als Inline-Arrow-Funktionen → neue Identität bei *jedem* Eltern-Render (u. a. der 15s-Poll). Dadurch holte `DashboardView` die Daten ständig neu und sprang jedes Mal kurz auf den „Loading…"-Platzhalter = Flackern. Jetzt sind die Fetcher stabil (`useCallback`), und ein Sparkline zeigt den Loading-Platzhalter nur noch, **bevor** die ersten Daten da sind — ein Refresh aktualisiert den Chart an Ort und Stelle. **#101 – Network Trend ohne Wachstum:** Der „Network Trend" plottete Tages-Deltas und zeigte als Headline nur das **letzte** Tages-Delta (meist 0), sodass echtes Follower-Wachstum als „kein Zuwachs" erschien. Jetzt plottet er die **kumulative** Netzwerkgröße (steigende Linie) und die Headline zeigt die **Netto-Änderung über den Zeitraum** (letzter − erster Wert, mit Vorzeichen/Farbe). Verifikation: `tsc`/Build/Lint sauber; neuer `dashboard-charts` Playwright-Test (Sparklines rendern, Refresh hält die Charts gemountet, kein „Loading"-Rücksprung) + Screenshot; Regressions-Specs grün (ein isoliert-grüner Auth-Session-Flake ist unabhängig). 🤖 Generated with [Claude Code](https://claude.com/claude-code)
fix(dashboard): stop graph flicker and show real network growth (#100, #101)
All checks were successful
CI/CD Workflow / Test Backend (Go) (pull_request) Successful in 2m56s
CI/CD Workflow / Test Frontend (Node.js) (pull_request) Successful in 1m25s
CI/CD Workflow / Test Postgres Store (pull_request) Successful in 1m17s
CI/CD Workflow / E2E (Playwright + Go) (pull_request) Successful in 7m48s
CI/CD Workflow / Build and Publish Docker Image (pull_request) Has been skipped
CI/CD Workflow / Trigger Dockhand Deployment (pull_request) Has been skipped
c1530c3453
#100 — The dashboard passed inline `fetchSeries`/`fetchGrowth` arrows, so they
changed identity on every parent render (incl. the periodic poll). That made the
sparklines refetch constantly and flip to the "Loading…" placeholder each time,
producing the flicker. The fetchers are now stable (useCallback) and a sparkline
only shows the loading placeholder before its first data arrives — a refresh
updates the chart in place.

#101 — "Network Trend" plotted day-over-day deltas and showed only the last
day's delta as the headline, which is usually 0, so real follower growth read as
"no growth". It now plots the cumulative network size (a rising line) and the
headline shows the net change across the window (last − first).

Closes #100. Closes #101.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Sign in to join this conversation.
No reviewers
No milestone
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
kreativmonkey/goloom!104
No description provided.