diff options
author | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2022-06-03 19:04:53 +0300 |
---|---|---|
committer | Alexander Kiryukhin <a.kiryukhin@mail.ru> | 2022-06-03 19:04:53 +0300 |
commit | 0e7b36c2d443306325f17bb8850f5bb6176202bf (patch) | |
tree | 86629d4fe05d73f2d77dad423cc37d5a612430f3 /src/utils/updateTimers.js | |
parent | 15d75cdc37e1459f7d11d004005d4305a6377ffd (diff) |
Diffstat (limited to 'src/utils/updateTimers.js')
-rw-r--r-- | src/utils/updateTimers.js | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/src/utils/updateTimers.js b/src/utils/updateTimers.js new file mode 100644 index 0000000..ed37901 --- /dev/null +++ b/src/utils/updateTimers.js @@ -0,0 +1,23 @@ +import { timerComplete } from "./notification"; + +export const updateTimers = (timers, setTimers, sound, browserNotifications) => { + const now = (new Date()).getTime() / 1000; + setTimers( + timers.map(t => { + if (!t.started) { + return t; + } + // количество секунд от текущего времени до того времени когда должен сработать таймер + const nt = Math.max(0, Math.round((t.startedAt / 1000 + t.initialTime) - now)); + // игнорируем повторные срабатывания + if (t.time !== nt) { + t.time = nt; + // таймер должен сработать + if (t.time <= 0) { + timerComplete(sound, browserNotifications, t); + } + } + return t; + }) + ); +} |