Fix renderer overlay loading and modularize renderer

This commit is contained in:
2026-02-11 18:27:29 -08:00
parent ee21c77fd0
commit 8a82a1b5f9
29 changed files with 3150 additions and 2741 deletions

View File

@@ -0,0 +1,43 @@
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,
};
}