diff --git a/src/components/profile/rule-item.tsx b/src/components/profile/rule-item.tsx index 38f05833f..03e5fb547 100644 --- a/src/components/profile/rule-item.tsx +++ b/src/components/profile/rule-item.tsx @@ -24,6 +24,8 @@ export const RuleItem = (props: Props) => { const proxyPolicy = rule.match(/[^,]+$/)?.[0] ?? ""; const ruleContent = rule.slice(ruleType.length + 1, -proxyPolicy.length - 1); + const $sortable = useSortable({ id: ruleRaw }); + const { attributes, listeners, @@ -32,7 +34,7 @@ export const RuleItem = (props: Props) => { transition, isDragging, } = sortable - ? useSortable({ id: ruleRaw }) + ? $sortable : { attributes: {}, listeners: {}, diff --git a/src/components/proxy/proxy-head.tsx b/src/components/proxy/proxy-head.tsx index f8eeffeab..fd0315450 100644 --- a/src/components/proxy/proxy-head.tsx +++ b/src/components/proxy/proxy-head.tsx @@ -31,9 +31,15 @@ interface Props { onHeadState: (val: Partial) => void; } -export const ProxyHead = (props: Props) => { - const { sx = {}, url, groupName, headState, onHeadState } = props; - +export const ProxyHead = ({ + sx = {}, + url, + groupName, + headState, + onHeadState, + onLocation, + onCheckDelay, +}: Props) => { const { showType, sortType, filterText, textState, testUrl } = headState; const { t } = useTranslation(); @@ -46,13 +52,11 @@ export const ProxyHead = (props: Props) => { }, []); const { verge } = useVerge(); + const default_latency_test = verge!.default_latency_test!; useEffect(() => { - delayManager.setUrl( - groupName, - testUrl || url || verge?.default_latency_test!, - ); - }, [groupName, testUrl, verge?.default_latency_test]); + delayManager.setUrl(groupName, testUrl || url || default_latency_test); + }, [groupName, testUrl, default_latency_test, url]); return ( @@ -60,7 +64,7 @@ export const ProxyHead = (props: Props) => { size="small" color="inherit" title={t("locate")} - onClick={props.onLocation} + onClick={onLocation} > @@ -76,7 +80,7 @@ export const ProxyHead = (props: Props) => { console.log(`[ProxyHead] 使用自定义测试URL: ${testUrl}`); onHeadState({ textState: "url" }); } - props.onCheckDelay(); + onCheckDelay(); }} > diff --git a/src/components/proxy/proxy-item.tsx b/src/components/proxy/proxy-item.tsx index dff589a9f..82308b0ec 100644 --- a/src/components/proxy/proxy-item.tsx +++ b/src/components/proxy/proxy-item.tsx @@ -61,12 +61,12 @@ export const ProxyItem = (props: Props) => { return () => { delayManager.removeListener(proxy.name, group.name); }; - }, [proxy.name, group.name]); + }, [proxy.name, group.name, isPreset]); useEffect(() => { if (!proxy) return; setDelay(delayManager.getDelayFix(proxy, group.name)); - }, [proxy]); + }, [group.name, proxy]); const onDelay = useLockFn(async () => { setDelay(-2); diff --git a/src/components/proxy/use-filter-sort.ts b/src/components/proxy/use-filter-sort.ts index 10880da95..e09f682f8 100644 --- a/src/components/proxy/use-filter-sort.ts +++ b/src/components/proxy/use-filter-sort.ts @@ -11,7 +11,7 @@ export default function useFilterSort( filterText: string, sortType: ProxySortType, ) { - const [refresh, setRefresh] = useState({}); + const [, setRefresh] = useState({}); useEffect(() => { let last = 0; @@ -34,7 +34,7 @@ export default function useFilterSort( const fp = filterProxies(proxies, groupName, filterText); const sp = sortProxies(fp, groupName, sortType); return sp; - }, [proxies, groupName, filterText, sortType, refresh]); + }, [proxies, groupName, filterText, sortType]); } export function filterSort( diff --git a/src/components/setting/mods/hotkey-input.tsx b/src/components/setting/mods/hotkey-input.tsx index 3e746936c..c4fdd7167 100644 --- a/src/components/setting/mods/hotkey-input.tsx +++ b/src/components/setting/mods/hotkey-input.tsx @@ -90,13 +90,11 @@ export const HotkeyInput = (props: Props) => {
{keys.map((key, index) => ( - + -
- {key} -
+
{key}
))}
diff --git a/src/components/setting/setting-verge-advanced.tsx b/src/components/setting/setting-verge-advanced.tsx index 35ec6d53e..197984c3c 100644 --- a/src/components/setting/setting-verge-advanced.tsx +++ b/src/components/setting/setting-verge-advanced.tsx @@ -59,13 +59,13 @@ const SettingVergeAdvanced = ({ onError: _ }: Props) => { const onExportDiagnosticInfo = useCallback(async () => { await exportDiagnosticInfo(); showNotice("success", t("Copy Success"), 1000); - }, []); + }, [t]); const copyVersion = useCallback(() => { navigator.clipboard.writeText(`v${version}`).then(() => { showNotice("success", t("Version copied to clipboard"), 1000); }); - }, [version, t]); + }, [t]); return ( diff --git a/src/components/setting/setting-verge-basic.tsx b/src/components/setting/setting-verge-basic.tsx index 59975aaca..915fb5a97 100644 --- a/src/components/setting/setting-verge-basic.tsx +++ b/src/components/setting/setting-verge-basic.tsx @@ -77,7 +77,7 @@ const SettingVergeBasic = ({ onError }: Props) => { const onCopyClashEnv = useCallback(async () => { await copyClashEnv(); showNotice("success", t("Copy Success"), 1000); - }, []); + }, [t]); return ( diff --git a/src/services/cmds.ts b/src/services/cmds.ts index 0d6897706..d12f79987 100644 --- a/src/services/cmds.ts +++ b/src/services/cmds.ts @@ -87,7 +87,7 @@ export async function getRuntimeLogs() { return invoke>("get_runtime_logs"); } -export async function getRuntimeProxyChainConfig(proxyChainExitNode: String) { +export async function getRuntimeProxyChainConfig(proxyChainExitNode: string) { return invoke("get_runtime_proxy_chain_config", { proxyChainExitNode, });