refactor: remove unnecessary useMemo calls across components

Replace over-cached simple computations with direct expressions:

- popup/App.tsx: getEntryPointType() and routerConfig (values are stable)
- Dashboard/index.tsx: visibleSet, visibleFeatures, recentFeatures
  (Set creation + array filter/map are cheaper than useMemo overhead)
- useTextStatistics.ts: getTextStats(text) (simple string processing)
- ThemeModeProvider.tsx: contextValue object (setMode is stable via useCallback)

-39 lines, +28 lines (net -11 lines)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
雨霖铃
2026-05-29 20:59:03 +08:00
parent 93019f56cf
commit b41cfb2a02
4 changed files with 29 additions and 47 deletions
+5 -14
View File
@@ -1,12 +1,4 @@
import {
createContext,
ReactNode,
useCallback,
useContext,
useEffect,
useMemo,
useState,
} from 'react';
import { createContext, ReactNode, useCallback, useContext, useEffect, useState } from 'react';
import { browser } from 'wxt/browser';
import { storageUtil } from '@/utils/chromeStorage';
@@ -141,12 +133,11 @@ export function ThemeModeProvider({ children }: ThemeModeProviderProps) {
}
}, [resolvedMode]);
const contextValue = useMemo(
() => ({ mode, resolvedMode, setMode }),
[mode, resolvedMode, setMode],
return (
<ThemeModeContext.Provider value={{ mode, resolvedMode, setMode }}>
{children}
</ThemeModeContext.Provider>
);
return <ThemeModeContext.Provider value={contextValue}>{children}</ThemeModeContext.Provider>;
}
export function useThemeMode(): ThemeModeContextType {