Remove more legacy webkit/ms/moz support
Signed-off-by: Michael Telatynski <7t3chguy@gmail.com>
This commit is contained in:
34
src/@types/global.d.ts
vendored
34
src/@types/global.d.ts
vendored
@@ -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<void>;
|
||||
msExitFullscreen(): Promise<void>;
|
||||
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<void>;
|
||||
msRequestFullscreen(options?: FullscreenOptions): Promise<void>;
|
||||
// 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 */
|
||||
|
||||
@@ -105,14 +105,8 @@ export default class LanguageDropdown extends React.Component<IProps, IState> {
|
||||
|
||||
// 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 (
|
||||
<Dropdown
|
||||
|
||||
@@ -107,14 +107,8 @@ export default class SpellCheckLanguagesDropdown 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 (
|
||||
<Dropdown
|
||||
|
||||
@@ -65,29 +65,6 @@ interface IState {
|
||||
sidebarShown: boolean;
|
||||
}
|
||||
|
||||
function getFullScreenElement(): Element | null {
|
||||
return (
|
||||
document.fullscreenElement ||
|
||||
// moz omitted because firefox supports this unprefixed now (webkit here for safari)
|
||||
document.webkitFullscreenElement ||
|
||||
document.msFullscreenElement
|
||||
);
|
||||
}
|
||||
|
||||
function requestFullscreen(element: Element): void {
|
||||
const method =
|
||||
element.requestFullscreen ||
|
||||
// moz omitted since firefox supports unprefixed now
|
||||
element.webkitRequestFullScreen ||
|
||||
element.msRequestFullscreen;
|
||||
if (method) method.call(element);
|
||||
}
|
||||
|
||||
function exitFullscreen(): void {
|
||||
const exitMethod = document.exitFullscreen || document.webkitExitFullscreen || document.msExitFullscreen;
|
||||
if (exitMethod) exitMethod.call(document);
|
||||
}
|
||||
|
||||
export default class LegacyCallView extends React.Component<IProps, IState> {
|
||||
private dispatcherRef?: string;
|
||||
private contentWrapperRef = createRef<HTMLDivElement>();
|
||||
@@ -119,8 +96,8 @@ export default class LegacyCallView extends React.Component<IProps, IState> {
|
||||
}
|
||||
|
||||
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<IProps, IState> {
|
||||
return;
|
||||
}
|
||||
if (payload.fullscreen) {
|
||||
requestFullscreen(this.contentWrapperRef.current);
|
||||
} else if (getFullScreenElement()) {
|
||||
exitFullscreen();
|
||||
this.contentWrapperRef.current?.requestFullscreen();
|
||||
} else if (document.fullscreenElement) {
|
||||
document.exitFullscreen();
|
||||
}
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -529,8 +529,7 @@ export async function getAllLanguagesWithLabels(): Promise<Language[]> {
|
||||
|
||||
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 {
|
||||
|
||||
Reference in New Issue
Block a user