mirror of
https://github.com/ksyasuda/SubMiner.git
synced 2026-02-27 18:22:41 -08:00
56 lines
1.8 KiB
TypeScript
56 lines
1.8 KiB
TypeScript
export type OverlayLayer = 'visible' | 'invisible' | 'secondary' | 'modal';
|
|
|
|
export type PlatformInfo = {
|
|
overlayLayer: OverlayLayer;
|
|
isInvisibleLayer: boolean;
|
|
isSecondaryLayer: boolean;
|
|
isModalLayer: boolean;
|
|
isLinuxPlatform: boolean;
|
|
isMacOSPlatform: boolean;
|
|
shouldToggleMouseIgnore: boolean;
|
|
invisiblePositionEditToggleCode: string;
|
|
invisiblePositionStepPx: number;
|
|
invisiblePositionStepFastPx: number;
|
|
};
|
|
|
|
export function resolvePlatformInfo(): PlatformInfo {
|
|
const overlayLayerFromPreload = window.electronAPI.getOverlayLayer();
|
|
const queryLayer = new URLSearchParams(window.location.search).get('layer');
|
|
const overlayLayerFromQuery: OverlayLayer | null =
|
|
queryLayer === 'visible' ||
|
|
queryLayer === 'invisible' ||
|
|
queryLayer === 'secondary' ||
|
|
queryLayer === 'modal'
|
|
? queryLayer
|
|
: null;
|
|
|
|
const overlayLayer: OverlayLayer =
|
|
overlayLayerFromQuery ??
|
|
(overlayLayerFromPreload === 'visible' ||
|
|
overlayLayerFromPreload === 'invisible' ||
|
|
overlayLayerFromPreload === 'secondary' ||
|
|
overlayLayerFromPreload === 'modal'
|
|
? overlayLayerFromPreload
|
|
: 'visible');
|
|
|
|
const isInvisibleLayer = overlayLayer === 'invisible';
|
|
const isSecondaryLayer = overlayLayer === 'secondary';
|
|
const isModalLayer = overlayLayer === 'modal';
|
|
const isLinuxPlatform = navigator.platform.toLowerCase().includes('linux');
|
|
const isMacOSPlatform =
|
|
navigator.platform.toLowerCase().includes('mac') || /mac/i.test(navigator.userAgent);
|
|
|
|
return {
|
|
overlayLayer,
|
|
isInvisibleLayer,
|
|
isSecondaryLayer,
|
|
isModalLayer,
|
|
isLinuxPlatform,
|
|
isMacOSPlatform,
|
|
shouldToggleMouseIgnore: !isLinuxPlatform && !isSecondaryLayer && !isModalLayer,
|
|
invisiblePositionEditToggleCode: 'KeyP',
|
|
invisiblePositionStepPx: 1,
|
|
invisiblePositionStepFastPx: 4,
|
|
};
|
|
}
|