Clearing a notification settles what it was about; fix missed phone pushes
build-container / build (push) Successful in 3m2s
build-container / build (push) Successful in 3m2s
Reading or clearing a notification marks its chat and new mail read and closes its banner; opening a chat clears its entry. Close the chat stream while the app is hidden so the server sends the phone push, renew changed push subscriptions, and re-send the subscription on each app open. Co-Authored-By: Claude Sonnet 5.5 <noreply@anthropic.com>
This commit is contained in:
1 parent
41c48b10e8
commit
a09d6b17f4
9 files changed
+82
-21
No files matched your search
@@ -17,6 +17,10 @@ async function chStart() {
|
||||
ch.es = new EventSource('/api/chat/events');
|
||||
ch.es.onmessage = e => { let ev; try { ev = JSON.parse(e.data); } catch { return; } chEvent(ev); };
|
||||
}
|
||||
// (iOS keeps a suspended app's connection open for minutes, and the server skips the phone push for anyone it thinks is looking: close the stream whenever the app is hidden)
|
||||
const chHide = () => { if (ch.es) { ch.es.close(); ch.es = null; } };
|
||||
document.addEventListener('visibilitychange', () => { if (document.hidden) chHide(); else chStart(); });
|
||||
window.addEventListener('pagehide', chHide);
|
||||
let chEvT = null;
|
||||
function chEvent(ev) {
|
||||
if (typeof ev.unread === 'number' && ev.unread !== ch.unread) { ch.unread = ev.unread; renderNav(activeTab); }
|
||||
|
||||
Reference in new issue
Block a user