diff --git a/src-tauri/src/config/verge.rs b/src-tauri/src/config/verge.rs index 7c1a32dc..64e3f206 100644 --- a/src-tauri/src/config/verge.rs +++ b/src-tauri/src/config/verge.rs @@ -36,6 +36,9 @@ pub struct IVerge { /// show memory info (only for Clash Meta) pub enable_memory_usage: Option, + /// enable group icon + pub enable_group_icon: Option, + /// common tray icon pub common_tray_icon: Option, @@ -172,6 +175,10 @@ impl IVerge { start_page: Some("/".into()), traffic_graph: Some(true), enable_memory_usage: Some(true), + enable_group_icon: Some(true), + common_tray_icon: Some(false), + sysproxy_tray_icon: Some(false), + tun_tray_icon: Some(false), enable_auto_launch: Some(false), enable_silent_start: Some(false), enable_system_proxy: Some(false), @@ -213,6 +220,7 @@ impl IVerge { patch!(startup_script); patch!(traffic_graph); patch!(enable_memory_usage); + patch!(enable_group_icon); patch!(common_tray_icon); patch!(sysproxy_tray_icon); patch!(tun_tray_icon); diff --git a/src/components/proxy/proxy-render.tsx b/src/components/proxy/proxy-render.tsx index d8b865d5..45e8d999 100644 --- a/src/components/proxy/proxy-render.tsx +++ b/src/components/proxy/proxy-render.tsx @@ -16,6 +16,7 @@ import { ProxyHead } from "./proxy-head"; import { ProxyItem } from "./proxy-item"; import { ProxyItemMini } from "./proxy-item-mini"; import type { IRenderItem } from "./use-render-list"; +import { useVerge } from "@/hooks/use-verge"; interface RenderProps { item: IRenderItem; @@ -30,6 +31,8 @@ export const ProxyRender = (props: RenderProps) => { const { indent, item, onLocation, onCheckAll, onHeadState, onChangeProxy } = props; const { type, group, headState, proxy, proxyCol } = item; + const { verge } = useVerge(); + const enable_group_icon = verge?.enable_group_icon ?? true; if (type === 0 && !group.hidden) { return ( @@ -37,18 +40,32 @@ export const ProxyRender = (props: RenderProps) => { dense onClick={() => onHeadState(group.name, { open: !headState?.open })} > - {group.icon && group.icon.trim().startsWith("http") && ( - - )} - {group.icon && group.icon.trim().startsWith("data") && ( - - )} - {group.icon && group.icon.trim().startsWith(" - )} + {enable_group_icon && + group.icon && + group.icon.trim().startsWith("http") && ( + + )} + {enable_group_icon && + group.icon && + group.icon.trim().startsWith("data") && ( + + )} + {enable_group_icon && + group.icon && + group.icon.trim().startsWith(" + )} ((props, ref) => { + + onChangeData({ enable_group_icon: e })} + onGuard={(e) => patchVerge({ enable_group_icon: e })} + > + + + +