From 7a06a5a06940f900cee3998b2192e648c1cec417 Mon Sep 17 00:00:00 2001 From: Tunglies <77394545+Tunglies@users.noreply.github.com> Date: Sun, 29 Mar 2026 02:06:08 +0800 Subject: [PATCH] fix: remove dead localStorage writes and hardcoded key MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Remove unused `dns_settings_enabled` localStorage writes in setting-clash.tsx — state is sourced from verge config, these writes were never read anywhere. - Replace hardcoded `'last_check_update'` localStorage read in system-info-card.tsx with exported `readLastCheckTime()` from the useUpdate hook, keeping the key in a single source of truth. --- src/components/home/system-info-card.tsx | 9 ++++++--- src/components/setting/setting-clash.tsx | 2 -- src/hooks/use-update.ts | 14 +++++--------- 3 files changed, 11 insertions(+), 14 deletions(-) diff --git a/src/components/home/system-info-card.tsx b/src/components/home/system-info-card.tsx index 6d93a57b8..024b02e2f 100644 --- a/src/components/home/system-info-card.tsx +++ b/src/components/home/system-info-card.tsx @@ -13,7 +13,11 @@ import { useNavigate } from 'react-router' import { useServiceInstaller } from '@/hooks/use-service-installer' import { useSystemState } from '@/hooks/use-system-state' -import { useUpdate, updateLastCheckTime } from '@/hooks/use-update' +import { + useUpdate, + updateLastCheckTime, + readLastCheckTime, +} from '@/hooks/use-update' import { useVerge } from '@/hooks/use-verge' import { getSystemInfo } from '@/services/cmds' import { showNotice } from '@/services/notice-service' @@ -63,8 +67,7 @@ export const SystemInfoCard = () => { // 如果启用了自动检查更新但没有记录,设置当前时间并延迟检查 useEffect(() => { if (!verge?.auto_check_update) return - const stored = localStorage.getItem('last_check_update') - if (stored) return + if (readLastCheckTime() !== null) return updateLastCheckTime() const timeoutId = window.setTimeout(() => { diff --git a/src/components/setting/setting-clash.tsx b/src/components/setting/setting-clash.tsx index f823cbf56..cb308c28f 100644 --- a/src/components/setting/setting-clash.tsx +++ b/src/components/setting/setting-clash.tsx @@ -78,7 +78,6 @@ const SettingClash = ({ onError }: Props) => { const handleDnsToggle = useLockFn(async (enable: boolean) => { try { setDnsSettingsEnabled(enable) - localStorage.setItem('dns_settings_enabled', String(enable)) await patchVerge({ enable_dns_settings: enable }) await invoke('apply_dns_config', { apply: enable }) setTimeout(() => { @@ -86,7 +85,6 @@ const SettingClash = ({ onError }: Props) => { }, 500) } catch (err: any) { setDnsSettingsEnabled(!enable) - localStorage.setItem('dns_settings_enabled', String(!enable)) showNotice.error(err) await patchVerge({ enable_dns_settings: !enable }).catch(() => {}) throw err diff --git a/src/hooks/use-update.ts b/src/hooks/use-update.ts index 16ceed48e..a7895f1ca 100644 --- a/src/hooks/use-update.ts +++ b/src/hooks/use-update.ts @@ -16,7 +16,7 @@ export interface UpdateInfo { const LAST_CHECK_KEY = 'last_check_update' -const readLastCheckFromStorage = (): number | null => { +export const readLastCheckTime = (): number | null => { const stored = localStorage.getItem(LAST_CHECK_KEY) if (!stored) return null const ts = parseInt(stored, 10) @@ -63,14 +63,10 @@ export const useUpdate = ( }) // Shared last check timestamp - const { data: lastCheckUpdate } = useSWR( - LAST_CHECK_KEY, - readLastCheckFromStorage, - { - revalidateOnFocus: false, - revalidateOnReconnect: false, - }, - ) + const { data: lastCheckUpdate } = useSWR(LAST_CHECK_KEY, readLastCheckTime, { + revalidateOnFocus: false, + revalidateOnReconnect: false, + }) return { updateInfo,