mirror of
https://github.com/vector-im/element-call.git
synced 2024-11-15 00:04:59 +08:00
Use prefixed versions of other fullscreen APIs too
This commit is contained in:
parent
05be247946
commit
d2175b40a4
6
src/@types/global.d.ts
vendored
6
src/@types/global.d.ts
vendored
@ -17,6 +17,12 @@ limitations under the License.
|
||||
import "matrix-js-sdk/src/@types/global";
|
||||
|
||||
declare global {
|
||||
interface Document {
|
||||
// Safari only supports this prefixed, so tell the type system about it
|
||||
webkitExitFullscreen: () => void;
|
||||
webkitFullscreenElement: HTMLElement | null;
|
||||
}
|
||||
|
||||
interface Window {
|
||||
// TODO: https://gitlab.matrix.org/matrix-org/olm/-/issues/10
|
||||
OLM_OPTIONS: Record<string, string>;
|
||||
|
@ -54,16 +54,23 @@ export function useFullscreen(ref: React.RefObject<HTMLElement>): {
|
||||
);
|
||||
|
||||
const onFullscreenChanged = useCallback(() => {
|
||||
if (!document.fullscreenElement) {
|
||||
if (!document.fullscreenElement && !document.webkitFullscreenElement) {
|
||||
setFullscreenParticipant(null);
|
||||
}
|
||||
}, [setFullscreenParticipant]);
|
||||
|
||||
useEventTarget(ref.current, "fullscreenchange", onFullscreenChanged);
|
||||
useEventTarget(ref.current, "webkitfullscreenchange", onFullscreenChanged);
|
||||
|
||||
useEffect(() => {
|
||||
if (disposed) {
|
||||
document.exitFullscreen();
|
||||
if (document.exitFullscreen) {
|
||||
document.exitFullscreen();
|
||||
} else if (document.webkitExitFullscreen) {
|
||||
document.webkitExitFullscreen();
|
||||
} else {
|
||||
logger.error("No available fullscreen API!");
|
||||
}
|
||||
setFullscreenParticipant(null);
|
||||
}
|
||||
}, [disposed]);
|
||||
|
Loading…
Reference in New Issue
Block a user