From 4a4844504335a38fcb8cfe2f15106cb16a42efca Mon Sep 17 00:00:00 2001 From: pompurin404 Date: Tue, 4 Feb 2025 12:36:46 +0800 Subject: [PATCH] fix: resolve titlebar overlay and controlled component warnings --- src/main/utils/ipc.ts | 4 +++- src/renderer/src/components/base/border-swtich.tsx | 8 +++++--- src/renderer/src/components/sider/sysproxy-switcher.tsx | 2 +- src/renderer/src/components/sider/tun-switcher.tsx | 2 +- src/renderer/src/utils/ipc.ts | 6 +++++- 5 files changed, 15 insertions(+), 7 deletions(-) diff --git a/src/main/utils/ipc.ts b/src/main/utils/ipc.ts index 1d29725..31cb084 100644 --- a/src/main/utils/ipc.ts +++ b/src/main/utils/ipc.ts @@ -213,7 +213,9 @@ export function registerIpcMainHandlers(): void { }) ipcMain.handle('setTitleBarOverlay', (_e, overlay) => ipcErrorWrapper(async (overlay): Promise => { - mainWindow?.setTitleBarOverlay(overlay) + if (mainWindow && typeof mainWindow.setTitleBarOverlay === 'function') { + mainWindow.setTitleBarOverlay(overlay) + } })(overlay) ) ipcMain.handle('setAlwaysOnTop', (_e, alwaysOnTop) => { diff --git a/src/renderer/src/components/base/border-swtich.tsx b/src/renderer/src/components/base/border-swtich.tsx index dd5ca7c..507e6f1 100644 --- a/src/renderer/src/components/base/border-swtich.tsx +++ b/src/renderer/src/components/base/border-swtich.tsx @@ -2,12 +2,13 @@ import React from 'react' import { cn, Switch, SwitchProps } from '@heroui/react' import './border-switch.css' -interface SiderSwitchProps extends SwitchProps { +interface BorderSwitchProps extends Omit { isShowBorder?: boolean + isSelected?: boolean } -const BorderSwitch: React.FC = (props) => { - const { isShowBorder = false, classNames, ...switchProps } = props +const BorderSwitch: React.FC = (props) => { + const { isShowBorder = false, isSelected = false, classNames, ...switchProps } = props return ( = (props) => { ...classNames }} size="sm" + isSelected={isSelected} {...switchProps} /> ) diff --git a/src/renderer/src/components/sider/sysproxy-switcher.tsx b/src/renderer/src/components/sider/sysproxy-switcher.tsx index de1c106..2318cdd 100644 --- a/src/renderer/src/components/sider/sysproxy-switcher.tsx +++ b/src/renderer/src/components/sider/sysproxy-switcher.tsx @@ -95,7 +95,7 @@ const SysproxySwitcher: React.FC = (props) => { diff --git a/src/renderer/src/components/sider/tun-switcher.tsx b/src/renderer/src/components/sider/tun-switcher.tsx index d160477..20a5986 100644 --- a/src/renderer/src/components/sider/tun-switcher.tsx +++ b/src/renderer/src/components/sider/tun-switcher.tsx @@ -98,7 +98,7 @@ const TunSwitcher: React.FC = (props) => { diff --git a/src/renderer/src/utils/ipc.ts b/src/renderer/src/utils/ipc.ts index a95178b..fcae33d 100644 --- a/src/renderer/src/utils/ipc.ts +++ b/src/renderer/src/utils/ipc.ts @@ -276,7 +276,11 @@ export async function webdavDelete(filename: string): Promise { } export async function setTitleBarOverlay(overlay: TitleBarOverlayOptions): Promise { - return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('setTitleBarOverlay', overlay)) + try { + return ipcErrorWrapper(await window.electron.ipcRenderer.invoke('setTitleBarOverlay', overlay)) + } catch (error) { + console.debug('setTitleBarOverlay not supported on this platform') + } } export async function setAlwaysOnTop(alwaysOnTop: boolean): Promise {