➡️

SvelteKit の beforeNavigate の cancel を使って画面を閉じる前に確認モーダルを出す方法

2023/04/07に公開

初めに

beforeNavigate cancel関数のtipsを発見したので紹介します。

ネイティブのダイアログを出す

beforeNavigateのtoがない時にcancelを呼んでおくと、ネイティブのダイアログが表示され、選択に応じた挙動になってくれます
cancel関数は本来、呼ぶと遷移をキャンセルするというものなのですが上記のケースはそうじゃないみたいです。

  • toがない場合とは
    • リロード時
    • タブを閉じた時
  beforeNavigate(({ cancel, to, from }) => {
    // リロード時 または タブを閉じた時
    if (!to) {
      // ネイティブのダイアログが出ます
      cancel();
      return ;
    } 
  });

image.png

さいごに

未保存の内容がある場合に確認を出す
などに使えるので使ってみてください!

Discussion