fix(design-system): force type=submit on StyledFormBuilder#submit

The DS::Button default-type-button change in the previous commit
broke every `form.submit "Log in"` callsite because
`StyledFormBuilder#submit` (app/helpers/styled_form_builder.rb)
renders a DS::Button under the hood with no explicit `type:`.

After the default flip, those submit buttons rendered as
`type="button"`, so submitting forms (login, password reset, every
form using `form.submit`) silently no-ops. CI surfaced this via
~30 system tests failing in the `sign_in` helper, which couldn't
get past the login page.

Pin `type: "submit"` on the DS::Button rendered by
`StyledFormBuilder#submit`. The 22 view-level `f.submit` /
`render DS::Button.new(type: :submit, ...)` callers already pass
type explicitly and are unaffected.
This commit is contained in:
Guillem Arias
2026-05-19 13:43:17 +02:00
parent 8e3150fad7
commit 624e9794ac

View File

@@ -89,6 +89,7 @@ class StyledFormBuilder < ActionView::Helpers::FormBuilder
@template.render(
DS::Button.new(
text: value,
type: "submit",
data: (options[:data] || {}).merge({ turbo_submits_with: "Submitting..." }),
full_width: true
)