コンポーネント
← すべてのコンポーネント

編集中離脱ガード

stimeo--dirty-form

フォームの変更を検知し、未保存のまま離脱しようとしたら警告する(unload+Turbo 遷移)。

  • Rails / Turbo

stimeo--dirty-form コントローラは connect 時にフォームの値をスナップショットし、値が変わればフォームに data-dirty を付与(基準値へ戻れば解除)、dirty の間だけフルアンロード(beforeunload)と Turbo 遷移(turbo:before-visit)の両方をガードします。Turbo 遷移では cancelable な stimeo--dirty-form:guard を発火し、利用側がキャンセル(または confirmBridge 指定)すると遷移を止め、そうでなければネイティブ confirm(message) にフォールバックします。送信成功(markClean アクション、または turbo:submit-end)で dirty を解除します。状態が変わると stimeo--dirty-form:dirty も発火します。ライブラリは挙動のみで、確認 UI は描画せず(Confirm Bridge と組み合わせ)、値の保存もしません(Persist と組み合わせ)。beforeunload は dirty の間だけ結線し、すべてのリスナは disconnect(Turbo 遷移含む)で解除します。

実行中
未保存の変更