Skip to content

Commit 227a522

Browse files
authored
refactor: use modern api for toggle fullscreen (@fehmer) (monkeytypegame#7150)
1 parent aafabeb commit 227a522

File tree

1 file changed

+3
-46
lines changed

1 file changed

+3
-46
lines changed

frontend/src/ts/utils/misc.ts

Lines changed: 3 additions & 46 deletions
Original file line numberDiff line numberDiff line change
@@ -112,54 +112,11 @@ export function objectToQueryString<T extends string | number | boolean>(
112112
return str.join("&");
113113
}
114114

115-
declare global {
116-
// type gets a "Duplicate identifier" error
117-
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
118-
interface Document {
119-
mozCancelFullScreen?: () => Promise<void>;
120-
msRequestFullscreen?: () => Promise<void>;
121-
msExitFullscreen?: () => Promise<void>;
122-
webkitExitFullscreen?: () => Promise<void>;
123-
mozFullScreenElement?: Element;
124-
msFullscreenElement?: Element;
125-
webkitFullscreenElement?: Element;
126-
}
127-
// eslint-disable-next-line @typescript-eslint/consistent-type-definitions
128-
interface HTMLElement {
129-
msRequestFullscreen?: () => Promise<void>;
130-
mozRequestFullScreen?: () => Promise<void>;
131-
webkitRequestFullscreen?: () => Promise<void>;
132-
}
133-
}
134-
135115
export function toggleFullscreen(): void {
136-
const elem = document.documentElement;
137-
if (
138-
!document.fullscreenElement &&
139-
!document.mozFullScreenElement &&
140-
!document.webkitFullscreenElement &&
141-
!document.msFullscreenElement
142-
) {
143-
if (elem.requestFullscreen !== undefined) {
144-
void elem.requestFullscreen();
145-
} else if (elem.msRequestFullscreen) {
146-
void elem.msRequestFullscreen();
147-
} else if (elem.mozRequestFullScreen) {
148-
void elem.mozRequestFullScreen();
149-
} else if (elem.webkitRequestFullscreen) {
150-
// @ts-expect-error some code i found online
151-
void elem.webkitRequestFullscreen(Element.ALLOW_KEYBOARD_INPUT);
152-
}
116+
if (!document.fullscreenElement) {
117+
void document.documentElement.requestFullscreen();
153118
} else {
154-
if (document.exitFullscreen !== undefined) {
155-
void document.exitFullscreen();
156-
} else if (document.msExitFullscreen) {
157-
void document.msExitFullscreen();
158-
} else if (document.mozCancelFullScreen) {
159-
void document.mozCancelFullScreen();
160-
} else if (document.webkitExitFullscreen) {
161-
void document.webkitExitFullscreen();
162-
}
119+
void document.exitFullscreen();
163120
}
164121
}
165122

0 commit comments

Comments
 (0)