For anyone else who stumbles on this and wishes for this event, you can actually create it yourself! This is what I’ve added to my application.js
:
const afterRenderEvent = new Event("turbo:after-stream-render");
addEventListener("turbo:before-stream-render", (event) => {
const originalRender = event.detail.render
event.detail.render = function (streamElement) {
originalRender(streamElement)
document.dispatchEvent(afterRenderEvent);
}
})
This introduces a turbo:after-stream-render
event so you can re-init your 3rd party libraries after Turbo Stream renders. There’s probably some way to make it even better that I haven’t thought of / haven’t needed yet (eg, by firing it on a more appropriate target or maybe by attaching more data to the event). But for now this serves my needs
Hope this helps someone else