feat(#5): авто-пауза напоминаний во время ВКС (Zoom/Teams/Discord/Webex)

This commit is contained in:
AnRil
2026-05-22 13:48:42 +07:00
parent a6ae931461
commit 81481f2131
6 changed files with 131 additions and 0 deletions

View File

@@ -5,6 +5,7 @@ import { isQuietAt } from '@shared/types'
import { getExercises, getHistory, getSettings, updateExercise } from './store'
import { fireReminder } from './notifications'
import { broadcastState } from './state-actions'
import { isMeetingActiveSync, refreshMeetingState } from './meeting-detect'
/**
* Сколько reps пользователь сделал по упражнению `ex` за сегодня (local day).
@@ -45,6 +46,15 @@ function checkDueExercises(): void {
// CHECK_MS pass after the window ends will pick them up.
if (isQuietAt(settings.quietHours, new Date())) return
// Авто-пауза на встречах. Sync-чтение кеша (последнее значение); refresh
// запускаем в фоне чтобы кеш «зрел» к следующему tick'у. На холодном
// старте кеш false — первое срабатывание может прийти в момент митинга,
// но 30 сек спустя система догонит и больше не будет fire'ить.
if (settings.meetingAutoPause) {
refreshMeetingState()
if (isMeetingActiveSync()) return
}
const now = Date.now()
const exercises = getExercises()
// history запрашивается только если хотя бы у одного упражнения есть