function createDetailDefer({ laterWork, session, close, refresh, focus, announce, formatTime = value => new Date(value).toLocaleString(), }) { return { defer(item, preset) { if (!item) return false; const until = laterWork.presetUntil(preset); const result = laterWork.defer(item, until); if (result !== 'deferred') { announce(result === 'invalid' ? 'Choose a valid future time.' : 'Could not save Later on this device.'); return false; } const inSession = session.active(); if (!inSession) close(); refresh(); announce('Deferred until ' + formatTime(until) + '. It stays unread and unchanged in Gitea.'); if (!inSession) focus(); return true; }, }; } if (typeof module !== 'undefined' && module.exports) module.exports = createDetailDefer;