diff --git a/src/renderer/src/components/settings/general-config.tsx b/src/renderer/src/components/settings/general-config.tsx index 0f286ea..dce6734 100644 --- a/src/renderer/src/components/settings/general-config.tsx +++ b/src/renderer/src/components/settings/general-config.tsx @@ -193,6 +193,7 @@ const GeneralConfig: React.FC = () => { selectionMode="multiple" selectedKeys={new Set(envType)} aria-label={t('settings.envType')} + disallowEmptySelection={true} onSelectionChange={async (v) => { try { await patchAppConfig({ @@ -389,6 +390,7 @@ const GeneralConfig: React.FC = () => { size="sm" selectedKeys={new Set([customTheme])} aria-label={t('settings.selectTheme')} + disallowEmptySelection={true} onSelectionChange={async (v) => { try { await patchAppConfig({ customTheme: v.currentKey as string }) diff --git a/src/renderer/src/components/settings/mihomo-config.tsx b/src/renderer/src/components/settings/mihomo-config.tsx index caeda12..724ee00 100644 --- a/src/renderer/src/components/settings/mihomo-config.tsx +++ b/src/renderer/src/components/settings/mihomo-config.tsx @@ -129,6 +129,7 @@ const MihomoConfig: React.FC = () => { size="sm" selectedKeys={new Set([proxyCols])} aria-label={t('mihomo.proxyColumns.title')} + disallowEmptySelection={true} onSelectionChange={async (v) => { await patchAppConfig({ proxyCols: v.currentKey as 'auto' | '1' | '2' | '3' | '4' }) }} @@ -147,6 +148,7 @@ const MihomoConfig: React.FC = () => { className="w-[150px]" size="sm" selectedKeys={new Set([mihomoCpuPriority])} + disallowEmptySelection={true} onSelectionChange={async (v) => { try { await patchAppConfig({ diff --git a/src/renderer/src/pages/connections.tsx b/src/renderer/src/pages/connections.tsx index a6d9338..2b9b596 100644 --- a/src/renderer/src/pages/connections.tsx +++ b/src/renderer/src/pages/connections.tsx @@ -236,6 +236,7 @@ const Connections: React.FC = () => { className="w-[180px] min-w-[131px]" aria-label={t('connections.orderBy')} selectedKeys={new Set([connectionOrderBy])} + disallowEmptySelection={true} onSelectionChange={async (v) => { await patchAppConfig({ connectionOrderBy: v.currentKey as diff --git a/src/renderer/src/pages/mihomo.tsx b/src/renderer/src/pages/mihomo.tsx index 3435e03..c8d2440 100644 --- a/src/renderer/src/pages/mihomo.tsx +++ b/src/renderer/src/pages/mihomo.tsx @@ -27,7 +27,7 @@ const CoreMap = { const Mihomo: React.FC = () => { const { t } = useTranslation() const { appConfig, patchAppConfig } = useAppConfig() - const { + const { core = 'mihomo', maxLogDays = 7, sysProxy, @@ -136,6 +136,7 @@ const Mihomo: React.FC = () => { size="sm" aria-label={t('mihomo.selectCoreVersion')} selectedKeys={new Set([core])} + disallowEmptySelection={true} onSelectionChange={async (v) => { handleConfigChangeWithRestart('core', v.currentKey as 'mihomo' | 'mihomo-alpha') }} @@ -702,6 +703,7 @@ const Mihomo: React.FC = () => { size="sm" aria-label={t('mihomo.selectLogLevel')} selectedKeys={new Set([logLevel])} + disallowEmptySelection={true} onSelectionChange={(v) => { onChangeNeedRestart({ 'log-level': v.currentKey as LogLevel }) }} @@ -720,6 +722,7 @@ const Mihomo: React.FC = () => { size="sm" aria-label={t('mihomo.selectFindProcessMode')} selectedKeys={new Set([findProcessMode])} + disallowEmptySelection={true} onSelectionChange={(v) => { onChangeNeedRestart({ 'find-process-mode': v.currentKey as FindProcessMode }) }}