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

agama-project / agama / 28161979348
83%

Build:
DEFAULT BRANCH: master
Ran 25 Jun 2026 09:58AM UTC
Jobs 3
Files 1032
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

25 Jun 2026 09:54AM UTC coverage: 83.044% (-0.05%) from 83.096%
28161979348

push

github

web-flow
refactor(web): unify localization settings into a single form (#3661)

## Summary

- Replace the three standalone localization selector pages (language,
keyboard, time zone) with a **single TanStack form** on the Localization
page, matching the shape of `system-form`, `registration-form`, and
`authentication-form`.
- Each selector is a `SearchableSelectField` typeahead: filter by name,
territory / country, code and (for time zones) UTC offset; rows show the
human name with the code de-emphasized, and the time zone's current
local time + offset.
- Introduce `SearchableSelectField`, a reusable typeahead combobox that
powers the three selectors (see its own section below).
- Show the explanatory text (installer language/keyboard adjustable from
the top bar) at the top of the
  page, before the fields, instead of below the form.


## Motivation / context

The Localization page used three `Page.Section` blocks, each linking out
to a separate full-page radio-list selector that committed on its own
and navigated back. That diverged from the rest of the app, where
settings live in one form
with a single submit. This unifies the experience.

## SearchableSelectField (new component)

A reusable typeahead combobox following the W3C "editable combobox with
list autocomplete" ARIA pattern, introduced here and used by all three
selectors:

- **Full-string search:** each option carries the complete text to match
(`filterText`, label included), so it filters by pieces not shown in the
visible label (codes, territory); the visual `description` is rendered
but never searched.
- **Accent-insensitive matching:** the query and option text are
sanitized (lowercased + diacritics stripped), so "ingles" matches
"Inglés". **`normalizeQuery`:** an optional last-resort callback to
rewrite the query before matching, for the rare case where a natural way
of typing should match an option it otherwise would not (here: a typed
"UTC+1" matches a zone whose offset is stored as "+1", wh... (continued)

4883 of 6817 branches covered (71.63%)

Branch coverage included in aggregate %.

239 of 265 new or added lines in 13 files covered. (90.19%)

3 existing lines in 3 files now uncovered.

25399 of 29648 relevant lines covered (85.67%)

124.0 hits per line

Uncovered Changes

Lines Coverage ∆ File
23
77.73
web/src/components/form/SearchableSelectField.tsx
1
88.89
-3.97% web/src/components/l10n/L10nPage.tsx
1
94.12
web/src/components/l10n/l10n-form/Form.tsx
1
81.25
web/src/components/l10n/l10n-form/transformations.ts

Coverage Regressions

Lines Coverage ∆ File
1
98.1
0.16% web/web/src/utils.ts
1
98.89
-1.11% web/web/src/components/core/Page.tsx
1
97.76
-0.75% web/src/components/core/Page.tsx
Subprojects
ID Flag name Job ID Ran Files Coverage
3 web 28161979348.3 25 Jun 2026 09:58AM UTC 713
79.91
GitHub Action Run
1 rust 19474749743.1 18 Nov 2025 05:18PM UTC 185
22.45
GitHub Action Run
3 service 28025224739.3 23 Jun 2026 12:13PM UTC 319
92.33
GitHub Action Run
Source Files on build 28161979348
  • Tree
  • List 1032
  • Changed 20
  • Source Changed 12
  • Coverage Changed 19
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #28161979348
  • ee15dea2 on github
  • Prev Build on master (#28032681432)
  • 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