diff --git a/blocks/edit/prose/index.js b/blocks/edit/prose/index.js index cece1bd0..3b274d16 100644 --- a/blocks/edit/prose/index.js +++ b/blocks/edit/prose/index.js @@ -121,6 +121,8 @@ function handleAwarenessUpdates(wsProvider, daTitle, win) { wsProvider.on('status', (st) => { daTitle.collabStatus = st.status; }); win.addEventListener('online', () => { daTitle.collabStatus = 'online'; }); win.addEventListener('offline', () => { daTitle.collabStatus = 'offline'; }); + win.addEventListener('focus', () => { wsProvider.connect(); }); + win.addEventListener('blur', () => { wsProvider.disconnect(); }); } export function createAwarenessStatusWidget(wsProvider, win) { diff --git a/test/unit/blocks/edit/proseCollab.test.js b/test/unit/blocks/edit/proseCollab.test.js index ddd71c62..4b81a3aa 100644 --- a/test/unit/blocks/edit/proseCollab.test.js +++ b/test/unit/blocks/edit/proseCollab.test.js @@ -35,7 +35,7 @@ describe('Prose collab', () => { const daTitle = pi.createAwarenessStatusWidget(wsp, win); expect(daTitle).to.equal(dat); - expect(winEventListeners.length).to.equal(2); + expect(winEventListeners.length).to.equal(4); const el0 = winEventListeners[0]; const el1 = winEventListeners[1]; const elOnline = el0.n === 'online' ? el0 : el1;