import { atomWithStorage, createJSONStorage } from 'jotai/utils'; /** * Cross-platform "pause notifications" / snooze. * * Unlike `manualDndAtom` (which only mirrors the desktop tray toggle and is * session-only), this is a user-set snooze that works on web/mobile/desktop and * survives a reload. The value is the epoch-ms instant until which notifications * are paused; `0` means not snoozed. `SNOOZE_INDEFINITE` represents "paused until * I turn it back on". * * The pure helpers live in `utils/snooze.ts` (unit-tested); re-exported here so * consumers have a single import site. */ export { SNOOZE_INDEFINITE, isSnoozeActive, nextTimeAtHour } from '../utils/snooze'; export const notificationSnoozeUntilAtom = atomWithStorage( 'cinny_notification_snooze_until_v1', 0, createJSONStorage(() => localStorage), { getOnInit: true }, );