mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
44 lines
1.3 KiB
TypeScript
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,
|
|
};
|
|
}
|