JSFiddle - React, Tailwind, and code Playground

by Trisox

JavaScript

window.vars = {
  timeoutVar: null
};
window.firstTimeoutMillis = 1000 * 10;
window.secondTimeoutMillis = 1000 * 15;

window.startTimer = function() {
  console.log('startTimer')
  if (window.firstTimeoutMillis !== null) {
    window.stopTimer();
    window.vars.timeoutVar = setTimeout(window._firstWarningAfterUnusedWhichTriggersSecondWarning, window.firstTimeoutMillis);
  }
};

window.stopTimer = function() {
  clearTimeout(window.vars.timeoutVar);
};

window.resetTimer = function() {
  window.startTimer();
};

window.disableTimer = function() {
  window.stopTimer();
  window.firstTimeoutMillis = null;
};

window._firstWarningAfterUnusedWhichTriggersSecondWarning = function() {
  console.log('first');

  if (confirm("first") === true) {
       window.stopTimer();
       window.resetTimer();
    } else {
         window.vars.timeoutVar = setTimeout(window._secondWarningWhichTriggersSessionClean, window.secondTimeoutMillis);
    }
};

window._secondWarningWhichTriggersSessionClean = function() {
	console.log('second');
  if (confirm("second") === true) {
      window.stopTimer();    
  }

};

function _clearSession() {
  clearTimeout(window.vars.timeoutVar);
};



window.startTimer();