From 339a37576c0ebd828911b30f085b26757061d63e Mon Sep 17 00:00:00 2001 From: Jay Ohms Date: Thu, 26 Feb 2026 05:04:14 -0500 Subject: [PATCH] Try adding turbo:before-visit event listener to test refreshing on iOS --- app/javascript/controllers/bridge/buttons_controller.js | 6 ++++++ app/javascript/controllers/bridge/form_controller.js | 6 ++++++ 2 files changed, 12 insertions(+) diff --git a/app/javascript/controllers/bridge/buttons_controller.js b/app/javascript/controllers/bridge/buttons_controller.js index 7cbf73501..e0d8b4b7c 100644 --- a/app/javascript/controllers/bridge/buttons_controller.js +++ b/app/javascript/controllers/bridge/buttons_controller.js @@ -7,10 +7,12 @@ export default class extends BridgeComponent { connect() { window.addEventListener("beforeunload", this.handleBeforeUnload.bind(this)) + window.addEventListener("turbo:before-visit", this.handleBeforeVisit.bind(this)) } disconnect() { window.removeEventListener("beforeunload", this.handleBeforeUnload.bind(this)) + window.removeEventListener("turbo:before-visit", this.handleBeforeVisit.bind(this)) } buttonTargetConnected() { @@ -43,6 +45,10 @@ export default class extends BridgeComponent { this.notifyBridgeOfDisconnect() } + handleBeforeVisit() { + this.notifyBridgeOfDisconnect() + } + #clickButton(message) { const selectedIndex = message.data.selectedIndex this.#enabledButtonTargets[selectedIndex].click() diff --git a/app/javascript/controllers/bridge/form_controller.js b/app/javascript/controllers/bridge/form_controller.js index e2d3f929c..175c6fe39 100644 --- a/app/javascript/controllers/bridge/form_controller.js +++ b/app/javascript/controllers/bridge/form_controller.js @@ -8,10 +8,12 @@ export default class extends BridgeComponent { connect() { window.addEventListener("beforeunload", this.handleBeforeUnload.bind(this)) + window.addEventListener("turbo:before-visit", this.handleBeforeVisit.bind(this)) } disconnect() { window.removeEventListener("beforeunload", this.handleBeforeUnload.bind(this)) + window.removeEventListener("turbo:before-visit", this.handleBeforeVisit.bind(this)) } submitTargetConnected() { @@ -61,6 +63,10 @@ export default class extends BridgeComponent { this.notifyBridgeOfDisconnect() } + handleBeforeVisit() { + this.notifyBridgeOfDisconnect() + } + #observeSubmitTarget() { this.submitObserver = new MutationObserver(() => { this.send(this.submitTarget.disabled ? "submitDisabled" : "submitEnabled")