Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

config.default_form_class should not be *overriden* but *complemented* when html: { :class } is specified #1819

Open
jerefrer opened this issue Aug 20, 2023 · 1 comment

Comments

@jerefrer
Copy link

I just updated a very old project and the CSS exploded for my forms.

Took me a while to realize that it all came from:

= simple_form_for user, html: { class: ('compact' if request.xhr?) }

In which the html: { class: ('compact' if request.xhr?) } actually replaced the default class from the config file:

config.default_form_class = 'ui form'

because if request.xhr? is false, then html[:class] is nil, but it still overrides the default class from the config file.

Alright I thought, maybe it comes from having html[:class] as nil, so I changed my code to only pass the html[:class] bit if request.xhr? is true.
That's kind of annoying, but why not.

But then I realized that when request.xhr? is actually true, I also have my forms go unstyled.

So when request.xhr? is true, I have to specify that I want the compact css class, but also to explicitly specify that I still want to keep the default one.

This doesn't look very DRY to me, because I have to repeat the default form class everywhere I want to add an extra class to the default.

It all originate from here it seems: 1e8bba7

And I wonder if it was actually a good move to accept this behavior.

What do you think? Should we revert to an additive behavior instead of substitutive?

@attenzione
Copy link

attenzione commented Oct 12, 2023

This is a duplicate of #1217.
Unfortunately, it has not been fixed for years.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Development

No branches or pull requests

2 participants