diff --git a/src/frontend/apps/e2e/__tests__/app-impress/doc-editor.spec.ts b/src/frontend/apps/e2e/__tests__/app-impress/doc-editor.spec.ts index aaf1e6b7..8dba8dab 100644 --- a/src/frontend/apps/e2e/__tests__/app-impress/doc-editor.spec.ts +++ b/src/frontend/apps/e2e/__tests__/app-impress/doc-editor.spec.ts @@ -204,6 +204,15 @@ test.describe('Doc Editor', () => { await verifyDocName(page, firstDoc); await expect(editor.getByText('Hello World Doc 2')).toBeHidden(); await expect(editor.getByText('Hello World Doc 1')).toBeVisible(); + + await page + .getByRole('button', { + name: 'New doc', + }) + .click(); + + await expect(editor.getByText('Hello World Doc 1')).toBeHidden(); + await expect(editor.getByText('Hello World Doc 2')).toBeHidden(); }); test('it saves the doc when we change pages', async ({ diff --git a/src/frontend/apps/impress/src/features/docs/doc-management/hooks/useCollaboration.tsx b/src/frontend/apps/impress/src/features/docs/doc-management/hooks/useCollaboration.tsx index 848ccd00..14f3b715 100644 --- a/src/frontend/apps/impress/src/features/docs/doc-management/hooks/useCollaboration.tsx +++ b/src/frontend/apps/impress/src/features/docs/doc-management/hooks/useCollaboration.tsx @@ -27,9 +27,14 @@ export const useCollaboration = (room?: string, initialContent?: Base64) => { setBroadcastProvider, ]); + /** + * Destroy the provider when the component is unmounted + */ useEffect(() => { return () => { - destroyProvider(); + if (room) { + destroyProvider(); + } }; - }, [destroyProvider]); + }, [destroyProvider, room]); };