Releases: hotwired-laravel/turbo-laravel
1.8.0
1.7.0
1.6.0
Changelog
- NEW: The response macro now has return types which should help out autocompletion on some IDEs or when using the Laravel IDE Helper - by @nielsbauman (PRs #84 and #85)
- NEW: We now support targeting multiple elements on Turbo Streams by @timvdalen. See documentation (#86)
- NEW: On top of the multiple targets work mentioned above, we now have new
appendAll(),prependAll(),updateAll(),replaceAll(),removeAll(),beforeAll, andafterAllmethods that take a CSS class selector and the content (which can be a string, a View instance, or an instance of theHtmlSafeclass) see the documentation - by @tonysm (#87) - NEW: You may create turbo streams responses or tags now using the new
turbo_stream()andturbo_stream_view()helper functions. These ship as namespaced functions under theTonysm\TurboLaravelnamespace, but also as globally available functions (easier to use them in contexts like Blade views, for instance). These work the same as theResponse::turboStream()andResponse::turboStreamView()macros (in fact, the macros now use them), they are just shorter. Suggested by @bilogic implemented by me @tonysm. See the documentation (#92) - REMOVED: The
--stimulusoption was removed from theturbo:installcommand. It now only has the--jetfor Jetstream installs and--alpinefor Breeze installs. I'm working on a new package called Stimulus Laravel for the folks using Stimulus out there.
You may also have noticed that I am moving the documentation content to markdown files inside the docs/ folder. That's because I'm working on a new website where the docs will be hosted (and some more stuff I'm working on). So I'll keep the docs in the readme and inside the docs/ folder for now, but once it's ready, we'll only have them inside the docs/ folder.
Internal Breaking Changes
Some method signatures were changed to accommodate the new multiple targets behavior. We could have introduced the new targets attribute at the end method signature as nullable, but I've decided to change the order of the parameters, so the target and targets are closer to each other. Technically, this is a breaking change if you're extending BroadcastAction job class or manually creating these jobs. I didn't want to tag a major version because of this as I'm not aware of folks extending the internals of the package. If you do have an issue with that, please stick to the 1.5.x version and let me know.
This doesn't affect applications using the package normally, just those more advanced scenarios where folks are extending the internals here.
The signature changes were made to these classes:
- The Broadcaster interface and concrete implementation API changed
- The BroadcastAction job
- The PendingBroadcast class
- The TurboStreamBroadcast event
1.5.1
1.5.0
1.4.1
1.4.0
1.3.0
Changelog
- NEW: The shorthand methods for building Turbo Streams all now accept either a model instance or a string as the first parameter to be used to derive the target. Optionally, you may pass a content variable to be rendered inside the Turbo Stream, which can be a string, an View instance, or an instance of a carefully handcrafted
HtmlString(#74 and docs). - NEW: Documented the issue with Laravel's
url()->previous()and Turbo Frames (docs) - BC: The channel name generated for a newly created model using the auto-broadcast feature was previously that model's broadcasting channel based on Laravel's conventions. However, no user will ever be listening on that channel (since the model was just created), so we're now defaulting to the basename of the model's class in plural, so if you have a model named
App\Models\Comment, broadcasts for the newly created models will be sent to a privatecommentschannel by default. You may specify thestreamoption in the$broadcastsproperty. The existing$broadcastToproperty orbroadcastTo()methods will have precedence over this (#74). - BC: The
beforeandaftershorthand stream builders were previously accepting a model instance and a target string. Now, the first parameter can be either a model instance of a string which will be used to derive the target of the Turbo Stream. Just like the other shorthand methods, you may also pass a string, a view, or anHtmlStringinstance as the second parameter for the content of the Turbo Stream. Without the content, you must specify the view/partial to render inside the Turbo Stream, otherwise an exception will be thrown. I consider this change a fix (#74)
Note: I consider both BC changes fixes, so I'm not tagging a major release. If you're relying on the previous behavior, take a closer look at the documentation and make the changes when you upgrade!
1.2.0
Changelog
- NEW: new optional
--alpineflag to theturbo:installcommand for when you want to install Alpine in a non-Jetstream context (maybe you're more into Breeze) - CHANGED: the
turbo:installcommand now detects when you're using Importmap Laravel and installs the dependencies there accordingly instead of always assuming NPM