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

agama-project / agama / 23806851640
77%
master: 77%

Build:
Build:
LAST BUILD BRANCH: network-tanstack-form-part6
DEFAULT BRANCH: master
Ran 31 Mar 2026 04:00PM UTC
Jobs 2
Files 886
Run time 2min
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

31 Mar 2026 03:57PM UTC coverage: 77.453% (+0.2%) from 77.261%
23806851640

push

github

web-flow
refactor(web): network connection form UX (part 3)  (#3349)

This PR continues the network connection form reimplementation, built on
top of https://github.com/agama-project/agama/pull/3338. It introduces a
reusable array input component, wires it into the form for addresses,
DNS servers, and DNS search domains, and adds comprehensive client-side
validation.

### ArrayField component

A new `ArrayField` component handles list-valued fields. It accepts
multiple entries via a text input, , one at a time, and displays them as
editable/removable PF/Label. It also supports pasting multiple values at
once and the ability to optionally skip duplicated entries. The
component is registered in `AppField` alongside previous added
`ChoiceField` (which probably deserves a better name).

### Addresses, DNS servers, and DNS search domains

All three field types now use `ArrayField` with per-entry format
validation: IPv4 and IPv6 addresses accept optional CIDR notation, DNS
servers accept bare IPv4 or IPv6, and DNS search domains follow RFC
952/1123 label rules.

### Client-side validation

Validation runs on submission rather than on each keystroke or focus
change, so users are not interrupted while filling in the form. All
rules live in a single `validateConnectionForm` helper:

 - name is required
- addresses are required in manual mode and must all be valid when given
- gateways are validated only when present and mode manual, ignored if
mode auto and no IP address (optional in that mode) is given
- DNS and search domain lists must have at least one valid entry when
their toggle is on.

IPv4 validation was also tightened to require standard four-part decimal
notation, rejecting values like `1111` that the underlying library would
otherwise accept.

A secondary fix ensures re-submission works after a failed attempt:
TanStack Form keeps `canSubmit` false once field errors are set by
`onSubmitAsync`, since there are no per-field validators to clear them.
The form no... (continued)

3488 of 5508 branches covered (63.33%)

Branch coverage included in aggregate %.

191 of 198 new or added lines in 5 files covered. (96.46%)

21 existing lines in 5 files now uncovered.

21287 of 26479 relevant lines covered (80.39%)

88.13 hits per line

New Missed Lines in Diff

Lines Coverage ∆ File
1
84.75
-15.25% web/src/components/network/IpSettings.tsx
2
92.24
web/src/components/form/ArrayField.tsx
4
81.43
-15.45% web/src/components/network/ConnectionForm.tsx

Uncovered Existing Lines

Lines Coverage ∆ File
1
94.44
-5.56% web/web/src/components/network/IpSettings.tsx
2
82.5
0.45% web/src/components/core/InstallationFinished.tsx
2
90.32
0.32% web/web/src/components/core/InstallationFinished.tsx
5
89.89
-8.6% web/web/src/components/network/ConnectionForm.tsx
11
87.72
3.1% web/web/src/utils/network.ts
Subprojects
ID Flag name Job ID Ran Files Coverage
2 web 23806851640.2 31 Mar 2026 04:00PM UTC 571
73.19
GitHub Action Run
2 service 23785944226.2 31 Mar 2026 07:38AM UTC 315
88.24
GitHub Action Run
Source Files on build 23806851640
  • Tree
  • List 886
  • Changed 29
  • Source Changed 23
  • Coverage Changed 11
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #23806851640
  • 16dc2f04 on github
  • Prev Build on enhance-network-connection-form (#23785944226)
  • Next Build on enhance-network-connection-form (#23847134209)
  • 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