From f8e1b2fd6aade090fb6ed4be1a5806f6a5e02648 Mon Sep 17 00:00:00 2001 From: Michael Telatynski <7t3chguy@gmail.com> Date: Thu, 16 Jan 2025 10:46:48 +0000 Subject: [PATCH] Remove more legacy webkit/ms/moz support Signed-off-by: Michael Telatynski <7t3chguy@gmail.com> --- src/@types/global.d.ts | 34 ------------------- .../views/elements/LanguageDropdown.tsx | 10 ++---- .../elements/SpellCheckLanguagesDropdown.tsx | 10 ++---- src/components/views/voip/LegacyCallView.tsx | 33 +++--------------- src/languageHandler.tsx | 3 +- 5 files changed, 10 insertions(+), 80 deletions(-) diff --git a/src/@types/global.d.ts b/src/@types/global.d.ts index 1fd5e2f149..02f50abee4 100644 --- a/src/@types/global.d.ts +++ b/src/@types/global.d.ts @@ -84,12 +84,6 @@ declare global { // we only ever check for its existence, so we can ignore its actual type MSStream?: unknown; - // https://github.com/microsoft/TypeScript-DOM-lib-generator/issues/1029#issuecomment-869224737 - // https://developer.mozilla.org/en-US/docs/Web/API/OffscreenCanvas - OffscreenCanvas?: { - new (width: number, height: number): OffscreenCanvas; - }; - mxContentMessages: ContentMessages; mxToastStore: ToastStore; mxDeviceListener: DeviceListener; @@ -149,31 +143,10 @@ declare global { fetchWindowIcons?: boolean; } - interface Document { - // Safari & IE11 only have this prefixed: we used prefixed versions - // previously so let's continue to support them for now - webkitExitFullscreen(): Promise; - msExitFullscreen(): Promise; - readonly webkitFullscreenElement: Element | null; - readonly msFullscreenElement: Element | null; - } - - interface Navigator { - userLanguage?: string; - } - interface StorageEstimate { usageDetails?: { [key: string]: number }; } - interface Element { - // Safari & IE11 only have this prefixed: we used prefixed versions - // previously so let's continue to support them for now - webkitRequestFullScreen(options?: FullscreenOptions): Promise; - msRequestFullscreen(options?: FullscreenOptions): Promise; - // scrollIntoView(arg?: boolean | _ScrollIntoViewOptions): void; - } - // https://github.com/microsoft/TypeScript/issues/28308#issuecomment-650802278 interface AudioWorkletProcessor { readonly port: MessagePort; @@ -232,11 +205,4 @@ declare global { var mx_rage_store: IndexedDBLogStore; } -// add method which is missing from the node typing -declare module "url" { - interface Url { - format(): string; - } -} - /* eslint-enable @typescript-eslint/naming-convention */ diff --git a/src/components/views/elements/LanguageDropdown.tsx b/src/components/views/elements/LanguageDropdown.tsx index 743e0df1f7..cbe4b81924 100644 --- a/src/components/views/elements/LanguageDropdown.tsx +++ b/src/components/views/elements/LanguageDropdown.tsx @@ -105,14 +105,8 @@ export default class LanguageDropdown extends React.Component { // default value here too, otherwise we need to handle null / undefined // values between mounting and the initial value propagating - let language = SettingsStore.getValue("language", null, /*excludeDefault:*/ true); - let value: string | undefined; - if (language) { - value = this.props.value || language; - } else { - language = navigator.language || navigator.userLanguage; - value = this.props.value || language; - } + const language = SettingsStore.getValue("language", null, /*excludeDefault:*/ true); + const value = this.props.value ?? language ?? navigator.language; return ( { private dispatcherRef?: string; private contentWrapperRef = createRef(); @@ -119,8 +96,8 @@ export default class LegacyCallView extends React.Component { } public componentWillUnmount(): void { - if (getFullScreenElement()) { - exitFullscreen(); + if (document.fullscreenElement) { + document.exitFullscreen(); } document.removeEventListener("keydown", this.onNativeKeyDown); @@ -159,9 +136,9 @@ export default class LegacyCallView extends React.Component { return; } if (payload.fullscreen) { - requestFullscreen(this.contentWrapperRef.current); - } else if (getFullScreenElement()) { - exitFullscreen(); + this.contentWrapperRef.current?.requestFullscreen(); + } else if (document.fullscreenElement) { + document.exitFullscreen(); } break; } diff --git a/src/languageHandler.tsx b/src/languageHandler.tsx index 937a6c1867..42450082cd 100644 --- a/src/languageHandler.tsx +++ b/src/languageHandler.tsx @@ -529,8 +529,7 @@ export async function getAllLanguagesWithLabels(): Promise { export function getLanguagesFromBrowser(): readonly string[] { if (navigator.languages && navigator.languages.length) return navigator.languages; - if (navigator.language) return [navigator.language]; - return [navigator.userLanguage || "en"]; + return [navigator.language ?? "en"]; } export function getLanguageFromBrowser(): string {