feat: add toggle to remember selected sider card

This commit is contained in:
Tongyuxiu Zhou
2026-06-27 19:39:51 +08:00
committed by GitHub
parent df7aa027c7
commit 01902f9c31
9 changed files with 22 additions and 3 deletions

View File

@@ -57,7 +57,8 @@ const App: React.FC = () => {
useWindowFrame = false,
siderWidth = 250,
siderOrder = DEFAULT_SIDER_ORDER,
lastSelectedSiderCard = 'proxy'
lastSelectedSiderCard = 'proxy',
rememberSelectedSiderCard = false
} = appConfig || {}
useTrafficLogger(enableTrafficLogger)
const narrowWidth = platform === 'darwin' ? 70 : 60
@@ -93,10 +94,11 @@ const App: React.FC = () => {
useEffect(() => {
if (!hasAppConfig) return
if (!rememberSelectedSiderCard) return
const currentSiderCard = getSiderCardByPath(location.pathname)
if (!currentSiderCard || currentSiderCard === lastSelectedSiderCard) return
patchAppConfig({ lastSelectedSiderCard: currentSiderCard })
}, [hasAppConfig, lastSelectedSiderCard, location.pathname, patchAppConfig])
}, [hasAppConfig, rememberSelectedSiderCard, lastSelectedSiderCard, location.pathname, patchAppConfig])
useEffect(() => {
siderWidthValueRef.current = siderWidthValue

View File

@@ -67,6 +67,7 @@ const GeneralConfig: React.FC = () => {
floatingWindowCompatMode = true,
disableHardwareAcceleration = false,
useWindowFrame = false,
rememberSelectedSiderCard = false,
autoQuitWithoutCore = false,
autoQuitWithoutCoreDelay = 60,
autoQuitWithoutCoreMode = 'core',
@@ -558,6 +559,15 @@ const GeneralConfig: React.FC = () => {
}, 1000)}
/>
</SettingItem>
<SettingItem title={t('settings.rememberSelectedSiderCard')} divider>
<Switch
size="sm"
isSelected={rememberSelectedSiderCard}
onValueChange={async (v) => {
await patchAppConfig({ rememberSelectedSiderCard: v })
}}
/>
</SettingItem>
<SettingItem title={t('settings.disableAnimations')} divider>
<Switch
size="sm"

View File

@@ -113,6 +113,7 @@
"settings.hideConnectionCardWave": "Connection Card Pure Number Display",
"settings.showDockIcon": "Show Dock Icon",
"settings.useWindowFrame": "Use System Title Bar",
"settings.rememberSelectedSiderCard": "Remember Selected Sidebar Card",
"settings.triggerMainWindowBehavior": "Tray Window Trigger Behavior",
"settings.triggerMainWindowBehaviorShow": "Always Show",
"settings.triggerMainWindowBehaviorToggle": "Toggle Show/Hide",

View File

@@ -107,6 +107,7 @@
"settings.enableTrafficLogger": "ثبت داده‌های مصرف ترافیک",
"settings.showDockIcon": "نمایش آیکون Dock",
"settings.useWindowFrame": "استفاده از نوار عنوان سیستم",
"settings.rememberSelectedSiderCard": "به خاطر سپردن کارت انتخاب شده",
"settings.disableHardwareAcceleration": "غیرفعال کردن شتاب سخت‌افزاری",
"settings.disableHardwareAccelerationTooltip": "غیرفعال کردن شتاب سخت‌افزاری می‌تواند مشکلات رندرینگ یا کرش ناشی از مشکلات درایور گرافیک را حل کند، اما ممکن است عملکرد را کاهش دهد. نیاز به راه‌اندازی مجدد برنامه دارد",
"settings.hardwareAcceleration.confirm.title": "تایید راه‌اندازی مجدد برنامه",

View File

@@ -109,6 +109,7 @@
"settings.enableTrafficLogger": "Записывать данные трафика",
"settings.showDockIcon": "Показывать значок в доке",
"settings.useWindowFrame": "Использовать системную рамку окна",
"settings.rememberSelectedSiderCard": "Запомнить выбранную вкладку",
"settings.disableHardwareAcceleration": "Отключить аппаратное ускорение",
"settings.disableHardwareAccelerationTooltip": "Отключение аппаратного ускорения может решить проблемы с рендерингом или сбоями, вызванными проблемами драйверов графики, но может снизить производительность. Требует перезапуска приложения",
"settings.hardwareAcceleration.confirm.title": "Подтверждение перезапуска приложения",

View File

@@ -113,6 +113,7 @@
"settings.hideConnectionCardWave": "连接卡片纯数字显示",
"settings.showDockIcon": "显示 Dock 图标",
"settings.useWindowFrame": "使用系统标题栏",
"settings.rememberSelectedSiderCard": "记住所选侧边卡片",
"settings.triggerMainWindowBehavior": "托盘窗口触发行为",
"settings.triggerMainWindowBehaviorShow": "总是显示",
"settings.triggerMainWindowBehaviorToggle": "切换显示/隐藏",

View File

@@ -113,6 +113,7 @@
"settings.hideConnectionCardWave": "連接卡片純數字顯示",
"settings.showDockIcon": "顯示 Dock 圖標",
"settings.useWindowFrame": "使用系統標題欄",
"settings.rememberSelectedSiderCard": "記住已選側邊卡片",
"settings.triggerMainWindowBehavior": "托盤窗口觸發行為",
"settings.triggerMainWindowBehaviorShow": "總是顯示",
"settings.triggerMainWindowBehaviorToggle": "切換顯示/隱藏",

View File

@@ -22,7 +22,8 @@ const HomeRedirect: React.FC = () => {
const { appConfig } = useAppConfig()
if (!appConfig) return null
return <Navigate to={getSiderCardRoute(appConfig.lastSelectedSiderCard)} replace />
const dest = appConfig.rememberSelectedSiderCard ? appConfig.lastSelectedSiderCard : 'proxy'
return <Navigate to={getSiderCardRoute(dest)} replace />
}
const routes = [

View File

@@ -332,6 +332,7 @@ interface IAppConfig {
enableTrafficLogger?: boolean
siderOrder: string[]
lastSelectedSiderCard?: SiderCardKey
rememberSelectedSiderCard?: boolean
siderWidth: number
appTheme: AppTheme
customTheme?: string