All files / repo/src/hooks useBeforeUnloadBackup.ts

100% Statements 18/18
100% Branches 4/4
100% Functions 2/2
100% Lines 18/18

Press n or j to go to the next uncovered block, b, p or k for the previous block.

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 231x 1x 1x   1x 3x 3x   3x 1x 1x   3x 3x 3x 3x   3x 3x 3x 3x 3x  
import { useGamePersistence } from '@/hooks/useGamePersistence';
import { useGameStore } from '@/stores/useGameStore';
import { onMounted, onUnmounted } from 'vue';
 
export function useBeforeUnloadBackup() {
  const gameStore = useGameStore();
  const { saveState } = useGamePersistence(gameStore.seed, gameStore.difficulty);
 
  function handleUnload() {
    saveState(gameStore.gameState);
  }
 
  onMounted(() => {
    window.addEventListener('beforeunload', handleUnload);
    window.addEventListener('pagehide', handleUnload);
  });
 
  onUnmounted(() => {
    window.removeEventListener('beforeunload', handleUnload);
    window.removeEventListener('pagehide', handleUnload);
  });
}