1
0
mirror of https://github.com/lensapp/lens.git synced 2025-05-20 05:10:56 +00:00

Set nativeTheme ipc handlers and callers

Signed-off-by: Alex Andreev <alex.andreev.email@gmail.com>
This commit is contained in:
Alex Andreev 2022-03-05 08:49:17 +03:00
parent 8dbc0b82f8
commit beba2c0068
4 changed files with 36 additions and 1 deletions

View File

@ -0,0 +1,8 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
export const setNativeThemeChannel = "theme:set-native-theme";
export const getNativeThemeChannel = "theme:get-native-theme";

View File

@ -55,6 +55,7 @@ import routerInjectable from "./router/router.injectable";
import shellApiRequestInjectable from "./proxy-functions/shell-api-request/shell-api-request.injectable";
import userStoreInjectable from "../common/user-store/user-store.injectable";
import trayMenuItemsInjectable from "./tray/tray-menu-items.injectable";
import { broadcastNativeThemeOnUpdate } from "./native-theme";
const di = getDi();
@ -108,6 +109,8 @@ di.runSetups().then(() => {
}
}
broadcastNativeThemeOnUpdate();
app.on("second-instance", (event, argv) => {
logger.debug("second-instance message");

View File

@ -3,7 +3,7 @@
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { BrowserWindow, IpcMainInvokeEvent, Menu } from "electron";
import { BrowserWindow, IpcMainInvokeEvent, Menu, nativeTheme } from "electron";
import { clusterFrameMap } from "../../../common/cluster-frames";
import { clusterActivateHandler, clusterSetFrameIdHandler, clusterVisibilityHandler, clusterRefreshHandler, clusterDisconnectHandler, clusterKubectlApplyAllHandler, clusterKubectlDeleteAllHandler, clusterDeleteHandler, clusterSetDeletingHandler, clusterClearDeletingHandler } from "../../../common/ipc/cluster";
import type { ClusterId } from "../../../common/cluster-types";
@ -24,6 +24,8 @@ import { onLocationChange, handleWindowAction } from "../../ipc/window";
import { openFilePickingDialogChannel } from "../../../common/ipc/dialog";
import { showOpenDialog } from "../../ipc/dialog";
import { windowActionHandleChannel, windowLocationChangedChannel, windowOpenAppMenuAsContextMenuChannel } from "../../../common/ipc/window";
import { getNativeColorTheme } from "../../native-theme";
import { getNativeThemeChannel } from "../../../common/ipc/native-theme";
interface Dependencies {
electronMenuItems: IComputedValue<MenuRegistration[]>;
@ -158,4 +160,8 @@ export const initIpcMainHandlers = ({ electronMenuItems, directoryForLensLocalSt
y: 20,
});
});
ipcMainHandle(getNativeThemeChannel, () => {
return getNativeColorTheme();
});
};

18
src/main/native-theme.ts Normal file
View File

@ -0,0 +1,18 @@
/**
* Copyright (c) OpenLens Authors. All rights reserved.
* Licensed under MIT License. See LICENSE in root directory for more information.
*/
import { nativeTheme } from "electron";
import { broadcastMessage } from "../common/ipc";
import { setNativeThemeChannel } from "../common/ipc/native-theme";
export function broadcastNativeThemeOnUpdate() {
nativeTheme.on("updated", () => {
broadcastMessage(setNativeThemeChannel, getNativeColorTheme());
});
}
export function getNativeColorTheme() {
return nativeTheme.shouldUseDarkColors ? "dark" : "light";
}