Skip to content

feat(ui): pool health score widget with trend indicators and suggestions (adopts + fixes #245) - #269

Merged
Sendi0011 merged 2 commits into
mainfrom
jsv-pool-health-widget
Sep 13, 2026
Merged

Sendi0011 merged 2 commits into
mainfrom
jsv-pool-health-widget

Conversation

@Sendi0011

Copy link
Copy Markdown
Contributor

Summary

Adopts @benzy018's pool health score widget (original PR #245) into the org repo, resolves the CI failure, and supersedes the original PR.

What's included

  • components/dashboard/pool-health-widget.tsx — horizontal scrollable card grid: SVG circular score rings (strokeDashoffset animation via framer-motion), trend icons, A–F grade badges, top suggestion per pool
  • components/dashboard/health-suggestion-list.tsx — expandable, urgency-sorted suggestion list
  • lib/pool-health.ts — dependency-free health-scoring engine with getCachedPoolHealth() memoization
  • my-groups.tsx — widget rendered at the top of the active groups tab (skeleton while loading; hidden when no pools)

Fixes vs original PR #245

  • Scoped E2E pool-name assertions to getByRole("heading") in create-pool.spec.ts and dashboard-tabs.spec.ts — getByText() was matching both the card <h3> and the widget's <p title> (Playwright strict-mode failure)
  • Removed an unused eslint-disable directive
  • Merged with current main (archived-tabs layout, separable activeContent), refetched 644eb8c/E2E mock-routing fixes

CI

Full pipeline expected green: lint, component tests, unit tests, Soroban build, Playwright.

Closes #245 (superseded)

…de assertions

Integrates benzy018's PoolHealthWidget into My Groups (tabs + archived layout),
adds the /members API mock fixture, and scopes E2E pool-name assertions to the
heading role so getByText() no longer matches both the card and the widget.
@vercel

vercel Bot commented Sep 13, 2026 •

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated
joint-save Ready Ready Preview Sep 13, 2026 7:39am UTC
joint-save-y4yx Ready Ready Preview Sep 13, 2026 7:39am UTC

The pool health widget (adopted in #269) renders a <p title={pool.name}> in
addition to the pool card's <h3>, so getByText(/Responsive Pool/i)) matches two
elements. Match the card heading instead, consistent with create-pool.spec.ts
and dashboard-tabs.spec.ts.
@Sendi0011
Sendi0011 merged commit 6c444fd into main Sep 13, 2026
17 checks passed

This branch was successfully deployed

2 active deployments
Preview – joint-save — 212b6466 Deployed Sep 13, 2026 by vercel[bot]
Preview – joint-save-y4yx — 212b6466 Deployed Sep 13, 2026 by vercel[bot]
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