hw-gs-player

Unnamed repository; edit this file 'description' to name the repository.
Log | Files | Refs | README

screen-saver.ts (1163B)


      1 export function screenSaver(): void {
      2   let screenSaverTimeout: ReturnType<typeof setTimeout> | undefined;
      3   const screenSaverElement = document.getElementById('screenSaver') as HTMLElement | null;
      4 
      5   // No-operation standby time
      6   const INACTIVITY_TIME = 60000; // ms
      7 
      8   // Show screensaver
      9   function showScreenSaver(): void {
     10     if (screenSaverElement) {
     11       screenSaverElement.style.display = 'flex';
     12     }
     13   }
     14 
     15   // Hide screensaver
     16   function hideScreenSaver(): void {
     17     if (screenSaverElement) {
     18       screenSaverElement.style.display = 'none';
     19     }
     20   }
     21 
     22   // Detects user operation and resets timer
     23   function resetInactivityTimer(): void {
     24     hideScreenSaver();
     25     if (screenSaverTimeout) {
     26       clearTimeout(screenSaverTimeout);
     27     }
     28     screenSaverTimeout = setTimeout(showScreenSaver, INACTIVITY_TIME);
     29   }
     30 
     31   // Monitoring user operation events
     32   window.addEventListener('mousemove', resetInactivityTimer);
     33   window.addEventListener('keydown', resetInactivityTimer);
     34   window.addEventListener('click', resetInactivityTimer);
     35   window.addEventListener('scroll', resetInactivityTimer);
     36 
     37   // Initial timer setting
     38   resetInactivityTimer();
     39 }