diff --git a/server.js b/server.js index b7d8677..018b7ae 100644 --- a/server.js +++ b/server.js @@ -865,9 +865,9 @@ app.post('/api/auth/logout', requireAuth, (req, res) => { if (req.session?.profile?.id && req.session?.storesCache) { cachedStoreSnapshots.set(req.session.profile.id, req.session.storesCache); } - sessionStore.delete(req.session.id); + sessionStore.update(req.session.id, { uiLoggedOutAt: Date.now() }); storeRefreshJobs.delete(req.session.id); - res.json({ success: true }); + res.json({ success: true, backgroundJobsActive: true }); }); app.get('/api/auth/session', requireAuth, async (req, res) => { diff --git a/services/pickupScheduler.js b/services/pickupScheduler.js index b6fc766..acfa759 100644 --- a/services/pickupScheduler.js +++ b/services/pickupScheduler.js @@ -496,17 +496,8 @@ async function getRegularPickupSchedule(session, storeId) { } } -function resolveEffectiveNow(entry, now) { - const startValue = toDateValue(entry?.desiredDateRange?.start || entry?.desiredDate); - if (startValue && startValue > now.getTime()) { - return new Date(startValue); - } - return now; -} - async function getNextPickupCheckTime(session, entry, settings) { const now = new Date(); - const effectiveNow = resolveEffectiveNow(entry, now); const offsets = (settings.pickupWindowOffsetsMinutes || []) .map((value) => Number(value)) .filter((value) => Number.isFinite(value)) @@ -522,11 +513,11 @@ async function getNextPickupCheckTime(session, entry, settings) { return null; } - const nowParts = getTimeZoneParts(effectiveNow, TIME_ZONE); + const nowParts = getTimeZoneParts(now, TIME_ZONE); if (nowParts.weekday === null) { return null; } - const todayStart = getStartOfDayInTimeZone(effectiveNow, TIME_ZONE); + const todayStart = getStartOfDayInTimeZone(now, TIME_ZONE); if (!todayStart) { return null; } @@ -554,13 +545,13 @@ async function getNextPickupCheckTime(session, entry, settings) { let candidate = offsets .map((offset) => new Date(slotDate.getTime() + offset)) - .find((date) => date.getTime() > effectiveNow.getTime()); + .find((date) => date.getTime() > now.getTime()); if (!candidate) { slotDate = addDays(slotDate, 7); candidate = offsets .map((offset) => new Date(slotDate.getTime() + offset)) - .find((date) => date.getTime() > effectiveNow.getTime()); + .find((date) => date.getTime() > now.getTime()); } if (candidate && (!best || candidate.getTime() < best.getTime())) {