Skip to content

feat(web): network quality dashboard widgets#129

Merged
ZingerLittleBee merged 14 commits into
mainfrom
feat/network-quality-widgets
May 29, 2026
Merged

feat(web): network quality dashboard widgets#129
ZingerLittleBee merged 14 commits into
mainfrom
feat/network-quality-widgets

Conversation

@ZingerLittleBee
Copy link
Copy Markdown
Owner

@ZingerLittleBee ZingerLittleBee commented May 29, 2026

Summary

Add network quality dashboard widgets end-to-end: design spec, shared data layer, four new widgets, config forms, i18n, and backend whitelist support.

Changes

  • Docs: design spec + implementation plan for network quality dashboard widgets; note backend whitelist touch point
  • Shared layer: extract pure network chart records merge function; reuse shared network chart records hook in the detail page
  • Widgets: network quality summary, network latency chart, network overview, plus config forms and i18n strings
  • Picker: register the new widget types and picker icons
  • Backend: allow network quality widget types in dashboard save (VALID_WIDGET_TYPES whitelist)
  • Polish: latency widget chart fills its grid cell; show skeleton while it loads

Test plan

  • cargo clippy --workspace -- -D warnings
  • bun run typecheck && bun x ultracite check
  • Add each new widget to a dashboard, save, reload — verify persistence and rendering

The dashboard save endpoint validates widget_type against the
VALID_WIDGET_TYPES whitelist, which omitted the three network quality
widgets. Saving a dashboard containing them returned 400 Unknown
widget_type. Add network-latency, network-quality and network-overview
to the whitelist and cover the regression with a unit test.
The spec claimed the feature was frontend-only with no backend changes,
but registering a widget type also requires adding it to the
VALID_WIDGET_TYPES whitelist in dashboard.rs. Document that touch point
and the corresponding cargo regression test.
LatencyChart was built for the detail page: it wraps itself in a card
with its own title and hard-codes a 300px height. Embedded in the
network-latency dashboard widget (which already provides the card and
header), that produced a redundant nested card and overflowed the grid
cell, visually overlapping the widget below. Add an opt-in embedded prop
that drops the card chrome/title and fills the parent height, matching
the line-chart widget pattern. The detail page keeps the default.
Expose isLoading from useNetworkChartRecords and gate the latency widget
on both the records and summary queries, so it renders a skeleton instead
of flashing the empty state or an axis-only chart while data loads. This
matches the loading behavior of the quality and overview widgets.
@ZingerLittleBee ZingerLittleBee merged commit a106c6b into main May 29, 2026
2 checks passed
@ZingerLittleBee ZingerLittleBee deleted the feat/network-quality-widgets branch May 29, 2026 17:05
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant