feat: handle rails turbo morphing (#11422)
Co-authored-by: Sivin Varghese <64252451+iamsivin@users.noreply.github.com>
This commit is contained in:
@@ -23,12 +23,18 @@ const runSDK = ({ baseUrl, websiteToken }) => {
|
||||
return;
|
||||
}
|
||||
|
||||
if (window.Turbo) {
|
||||
// if this is a Rails Turbo app
|
||||
document.addEventListener('turbo:before-render', event =>
|
||||
restoreWidgetInDOM(event.detail.newBody)
|
||||
);
|
||||
}
|
||||
// if this is a Rails Turbo app
|
||||
document.addEventListener('turbo:before-render', event => {
|
||||
// when morphing the page, this typically happens on reload like events
|
||||
// say you update a "Customer" on a form and it reloads the page
|
||||
// We have already added data-turbo-permananent to true. This
|
||||
// will ensure that the widget it preserved
|
||||
// Read more about morphing here: https://turbo.hotwired.dev/handbook/page_refreshes#morphing
|
||||
// and peristing elements here: https://turbo.hotwired.dev/handbook/building#persisting-elements-across-page-loads
|
||||
if (event.detail.renderMethod === 'morph') return;
|
||||
|
||||
restoreWidgetInDOM(event.detail.newBody);
|
||||
});
|
||||
|
||||
if (window.Turbolinks) {
|
||||
document.addEventListener('turbolinks:before-render', event => {
|
||||
|
||||
Reference in New Issue
Block a user