Files
past-go/weapp/utils/announcement-session.js
T
Blizzard 8be6d9b1ab feat: add account deletion, announcements and subscription renewal
Support personal records and persistent smoking visibility. Add upload quota preflight, file cleanup, privacy entry, image caching and revision-based page refresh across the backend, admin and mini program.
2026-11-03 22:06:47 +08:00

15 lines
682 B
JavaScript

// Memory only: a cold start begins a new login session. Never persist this in storage.
const seen = new Map();
function shouldShow(notice, userId) {
if (!notice || !notice.enabled || !String(notice.content || '').trim()) return false;
const mode = notice.mode || 'login_once';
if (mode === 'off') return false;
if (mode === 'always') return true;
return mode === 'login_once' && seen.get(String(userId || '')) !== notice.revision;
}
function markShown(notice, userId) {
if (notice && (notice.mode || 'login_once') === 'login_once') seen.set(String(userId || ''), notice.revision);
}
function clear() { seen.clear(); }
module.exports = { shouldShow, markShown, clear };