stackchain-dashboard/frontend/reconnect-outboxes.js
timmy 64e764b996
All checks were successful
CI / lint (pull_request) Successful in 1m59s
CI / build-release (pull_request) Successful in 6s
CI / browser-journey (pull_request) Successful in 56s
CI / release-candidate (pull_request) Has been skipped
fix: flush durable outboxes after reconnect (Closes #927)
2026-08-16 01:32:11 +00:00

26 lines
799 B
JavaScript

function createReconnectOutboxes({
refresh,
restoreIdentity,
flushIssue,
flushAuthored,
flushNotificationReads,
}) {
return async function reconnectOutboxes() {
const snapshot = await refresh();
const freshness = snapshot?.freshness?.sections?.context;
const identityFresh = snapshot?.context && !snapshot.context.error &&
!freshness?.stale && !freshness?.degraded && !freshness?.revalidating;
const login = identityFresh ? String(snapshot.context.user?.login || '').trim() : '';
if (!login) return false;
restoreIdentity(login);
await Promise.all([
flushIssue(),
flushAuthored(),
flushNotificationReads(),
]);
return true;
};
}
if (typeof module !== 'undefined' && module.exports) module.exports = createReconnectOutboxes;