• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

agama-project / agama / 24571401158
73%
master: 83%

Build:
Build:
LAST BUILD BRANCH: busy_state_calc
DEFAULT BRANCH: master
Ran 17 Apr 2026 02:54PM UTC
Jobs 1
Files 585
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

17 Apr 2026 02:51PM UTC coverage: 71.924%. First build
24571401158

push

github

web-flow
refactor(web): migrate SoftwarePatternsSelection to TanStack Form (#3389)

## Summary

This PR transforms `SoftwarePatternsSelection` from a **page of
checkboxes** into a **real, declarative form driven by TanStack Form**,
making it consistent with how other areas of the app manage settings.
Users can now interact with multiple patterns and submit changes
explicitly with **Accept** or discard them with **Cancel**, rather than
triggering backend updates on every toggle.

This is the first step in a broader **Software area revamp**, laying the
foundation for future improvements in UX consistency and visibility of
selected patterns.

Key benefits:
- **Consistent UX**: Behaves like other forms, avoiding surprises and
making interaction predictable.
- **Reliable submission**: Only patterns that users actually touched are
included in the backend update.
- **Maintainable code**: TanStack Form simplifies state management,
validation, and submission logic.


## Why
Before this change, the software patterns selection was a list of
checkboxes acting like switches: **every toggle immediately called the
backend**, triggering a software progress overlay and **blocking user
interaction until the request completed**. This made user interaction
slow and frustrating.

With this migration:
- Users can make multiple selections and submit once.
- The form tracks which patterns were touched, so only intentional
changes are applied.
- The UI now behaves consistently with other forms in the app,
supporting proper validation, submission, and completion logic.

Under the hood, each pattern is a separate form field, enabling precise
tracking and ensuring correct behavior on save.

## Under the Hood
This PR also brings improvements for developers and the broader Software
area:
- **Reusable `usePristineSafeForm` hook**: Detects untouched forms and
skips unnecessary business logic, available for other forms across the
app.
- **Extracted utilities (`utils/software.ts`)**: Grouping,... (continued)

3716 of 6024 branches covered (61.69%)

Branch coverage included in aggregate %.

71 of 72 new or added lines in 3 files covered. (98.61%)

13740 of 18246 relevant lines covered (75.3%)

81.1 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
93.67
web/src/components/software/SoftwarePatternsSelection.tsx
Subprojects
ID Flag name Job ID Ran Files Coverage
1 web 24571401158.1 17 Apr 2026 02:54PM UTC 585
71.92
GitHub Action Run
Source Files on build 24571401158
  • Tree
  • List 585
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #24571401158
  • 34a61535 on github
  • Next Build on feature-desktop-selection (#24728822120)
  • Delete
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc