note that 19 panels put inputs outside a form

Typing a value and pressing Enter does nothing in any of them; the button is
the only way to submit. Found in gitea's connection screen and fixed there
only, because the rest are not one change: a search box has no submit and
wrapping it changes nothing, while a multi-field editor wants the useForm hook
rather than a hand-rolled onSubmit.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
2026-08-19 10:32:57 +00:00
co-authored by Claude Opus 5
parent 79ced03bec
commit 319afe2c5d
+17
View File
@@ -314,6 +314,23 @@ Two things it does NOT do, both deliberate and both worth knowing:
update. That is the right default — an install that silently fetches whatever is latest is not
reproducible — but there is no "check for a newer one" anywhere.
## Inputs outside forms (2026-08-19)
**19 panel files use `Input` with no `<form>` around it.** Typing a value and pressing Enter does
nothing; the button is the only way to submit, which is a keyboard trap wearing a layout. Reported from
gitea's connection screen — "I shouldn't have to click the button" — and fixed there only.
The list, from `grep -rl components/ui/input` filtered by absence of `<form>`:
plugins/bitcoin-wallet: ChainSourceCard, RescanCard, WalletSettingsView
plugins/invoices: components, CustomersListView, DocumentEditor, EstimatesListView,
ExpensesListView, InvoicesListView, ItemsListView, RecordEditors
…and the rest of the 19
Not a blind sweep: a search box has no submit and wrapping one changes nothing, while an editor with
several fields wants `useForm` (`workspaces/hooks`) rather than a hand-rolled `onSubmit`. Each one needs
looking at. What they share is that none of them was a decision.
## Affordances (2026-08-19)
Agreed and written down in `plugins/CLAUDE.md`; **nothing is built**. An affordance is what the surface