mirror of
https://hubproxy.babadafafafafa.cn/https://github.com/mihomo-party-org/clash-party.git
synced 2026-09-20 08:03:39 +08:00
feat: add toggle to remember selected sider card
This commit is contained in:
@@ -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
|
||||
|
||||
@@ -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"
|
||||
|
||||
@@ -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",
|
||||
|
||||
@@ -107,6 +107,7 @@
|
||||
"settings.enableTrafficLogger": "ثبت دادههای مصرف ترافیک",
|
||||
"settings.showDockIcon": "نمایش آیکون Dock",
|
||||
"settings.useWindowFrame": "استفاده از نوار عنوان سیستم",
|
||||
"settings.rememberSelectedSiderCard": "به خاطر سپردن کارت انتخاب شده",
|
||||
"settings.disableHardwareAcceleration": "غیرفعال کردن شتاب سختافزاری",
|
||||
"settings.disableHardwareAccelerationTooltip": "غیرفعال کردن شتاب سختافزاری میتواند مشکلات رندرینگ یا کرش ناشی از مشکلات درایور گرافیک را حل کند، اما ممکن است عملکرد را کاهش دهد. نیاز به راهاندازی مجدد برنامه دارد",
|
||||
"settings.hardwareAcceleration.confirm.title": "تایید راهاندازی مجدد برنامه",
|
||||
|
||||
@@ -109,6 +109,7 @@
|
||||
"settings.enableTrafficLogger": "Записывать данные трафика",
|
||||
"settings.showDockIcon": "Показывать значок в доке",
|
||||
"settings.useWindowFrame": "Использовать системную рамку окна",
|
||||
"settings.rememberSelectedSiderCard": "Запомнить выбранную вкладку",
|
||||
"settings.disableHardwareAcceleration": "Отключить аппаратное ускорение",
|
||||
"settings.disableHardwareAccelerationTooltip": "Отключение аппаратного ускорения может решить проблемы с рендерингом или сбоями, вызванными проблемами драйверов графики, но может снизить производительность. Требует перезапуска приложения",
|
||||
"settings.hardwareAcceleration.confirm.title": "Подтверждение перезапуска приложения",
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
"settings.hideConnectionCardWave": "连接卡片纯数字显示",
|
||||
"settings.showDockIcon": "显示 Dock 图标",
|
||||
"settings.useWindowFrame": "使用系统标题栏",
|
||||
"settings.rememberSelectedSiderCard": "记住所选侧边卡片",
|
||||
"settings.triggerMainWindowBehavior": "托盘窗口触发行为",
|
||||
"settings.triggerMainWindowBehaviorShow": "总是显示",
|
||||
"settings.triggerMainWindowBehaviorToggle": "切换显示/隐藏",
|
||||
|
||||
@@ -113,6 +113,7 @@
|
||||
"settings.hideConnectionCardWave": "連接卡片純數字顯示",
|
||||
"settings.showDockIcon": "顯示 Dock 圖標",
|
||||
"settings.useWindowFrame": "使用系統標題欄",
|
||||
"settings.rememberSelectedSiderCard": "記住已選側邊卡片",
|
||||
"settings.triggerMainWindowBehavior": "托盤窗口觸發行為",
|
||||
"settings.triggerMainWindowBehaviorShow": "總是顯示",
|
||||
"settings.triggerMainWindowBehaviorToggle": "切換顯示/隱藏",
|
||||
|
||||
@@ -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 = [
|
||||
|
||||
1
src/shared/types.d.ts
vendored
1
src/shared/types.d.ts
vendored
@@ -332,6 +332,7 @@ interface IAppConfig {
|
||||
enableTrafficLogger?: boolean
|
||||
siderOrder: string[]
|
||||
lastSelectedSiderCard?: SiderCardKey
|
||||
rememberSelectedSiderCard?: boolean
|
||||
siderWidth: number
|
||||
appTheme: AppTheme
|
||||
customTheme?: string
|
||||
|
||||
Reference in New Issue
Block a user