native refresh

This commit is contained in:
Pete Matsyburka committed 2026-09-23 11:00:17 +03:00
1 parent 5a29ed22db
commit 714324ea99
1 file changed
+25
+25
View File
@@ -85,6 +85,31 @@ document.addEventListener('turbo:morph', () => {
document.activeElement?.blur()
})
if (window.webkit?.messageHandlers?.native) {
const staleSnapshots = new Set()
let isRestoring = false
window.Turbo.session.view.clearSnapshotCache = function () {
this.snapshotCache.keys.forEach((key) => staleSnapshots.add(key))
}
document.addEventListener('turbo:submit-end', (e) => {
if (e.detail.success && !e.detail.formSubmission.isSafe) {
window.webkit.messageHandlers.native.postMessage({ type: 'stale' })
}
})
document.addEventListener('turbo:visit', (e) => {
isRestoring = e.detail.action === 'restore'
})
document.addEventListener('turbo:load', () => {
if (staleSnapshots.delete(window.location.href.split('#')[0]) && isRestoring) {
setTimeout(() => window.Turbo.session.refresh(document.baseURI))
}
})
}
document.addEventListener('turbo:before-fetch-request', (event) => {
event.detail.fetchOptions.headers['X-Turbo'] = 'true'
})