Files
SubMiner/src/renderer/utils/platform.ts

44 lines
1.3 KiB
TypeScript

export type OverlayLayer = "visible" | "invisible";
export type PlatformInfo = {
overlayLayer: OverlayLayer;
isInvisibleLayer: boolean;
isLinuxPlatform: boolean;
isMacOSPlatform: boolean;
shouldToggleMouseIgnore: boolean;
invisiblePositionEditToggleCode: string;
invisiblePositionStepPx: number;
invisiblePositionStepFastPx: number;
};
export function resolvePlatformInfo(): PlatformInfo {
const overlayLayerFromPreload = window.electronAPI.getOverlayLayer();
const overlayLayerFromQuery =
new URLSearchParams(window.location.search).get("layer") === "invisible"
? "invisible"
: "visible";
const overlayLayer: OverlayLayer =
overlayLayerFromPreload === "visible" ||
overlayLayerFromPreload === "invisible"
? overlayLayerFromPreload
: overlayLayerFromQuery;
const isInvisibleLayer = overlayLayer === "invisible";
const isLinuxPlatform = navigator.platform.toLowerCase().includes("linux");
const isMacOSPlatform =
navigator.platform.toLowerCase().includes("mac") ||
/mac/i.test(navigator.userAgent);
return {
overlayLayer,
isInvisibleLayer,
isLinuxPlatform,
isMacOSPlatform,
shouldToggleMouseIgnore: !isLinuxPlatform,
invisiblePositionEditToggleCode: "KeyP",
invisiblePositionStepPx: 1,
invisiblePositionStepFastPx: 4,
};
}