Files
upstream-jitsi-meet/react/features/always-on-top/document-pip-index.tsx
upstream-mirror 1d2bfcac0c
Some checks failed
Prosody Plugin Tests / test (push) Failing after 10m11s
Close stale issues and PRs / stale (push) Failing after 1s
snapshot of https://github.com/jitsi/jitsi-meet.git @ fd1749dd28f4138aa80234fc7f311b19aaffa0e7 (2026-09-15)
2026-09-15 15:56:32 +05:00

42 lines
989 B
TypeScript

/**
* Entry point for the Document PiP window renderer.
*
* Bootstraps the React tree into the PiP window document and unmounts it when
* the window is closed or reloaded.
*/
import React from 'react';
import { createRoot } from 'react-dom/client';
import DocumentPiP from './DocumentPiP';
/**
* React root attached to the Document PiP window document.
*/
const root = createRoot(document.getElementById('react') as HTMLElement);
root.render(<DocumentPiP />);
/**
* Whether the renderer has already been cleaned up.
*/
let cleanedUp = false;
/**
* Unmounts the Document PiP renderer before the PiP window is closed or reloaded.
*
* @returns {void}
*/
const cleanup = () => {
if (cleanedUp) {
return;
}
cleanedUp = true;
window.removeEventListener('beforeunload', cleanup);
window.removeEventListener('pagehide', cleanup);
root.unmount();
};
window.addEventListener('beforeunload', cleanup);
window.addEventListener('pagehide', cleanup);