hotwired / turbo-rails

Use Turbo in your Ruby on Rails app
https://turbo.hotwired.dev
MIT License
2.13k stars 329 forks source link

Ensure `turbo-stream[action="remove"]` does not render a view partial by default #680

Closed seanpdoyle closed 2 months ago

seanpdoyle commented 2 months ago

Closes #679

Prior to this change, calls to Turbo::Streams::Broadcasts#broadcast_remove_to would render a view partial that corresponds to the model regardless of whether or not the contents of that render would be included in the broadcast <turbo-stream> element.

Not only is it wasteful to render HTML and then do nothing with it, it also poses the risk of failing due to errors raised during the rendering process.

This commit restructures the contents of the Turbo::Streams::Broadcasts#broadcast_action_to method to skip extraneous rendering if render: false is passed. In addition, it ensures that calls to broadcast_remove_to pass render: false by default.

seanpdoyle commented 2 months ago

@jorgemanrubia @brunoprietog are either of you available to review this?