mirror of
https://github.com/clash-verge-rev/clash-verge-rev
synced 2025-05-05 04:43:44 +08:00
feat: allow disable group icon
This commit is contained in:
parent
c2852c8a82
commit
56011d37d4
@ -36,6 +36,9 @@ pub struct IVerge {
|
|||||||
/// show memory info (only for Clash Meta)
|
/// show memory info (only for Clash Meta)
|
||||||
pub enable_memory_usage: Option<bool>,
|
pub enable_memory_usage: Option<bool>,
|
||||||
|
|
||||||
|
/// enable group icon
|
||||||
|
pub enable_group_icon: Option<bool>,
|
||||||
|
|
||||||
/// common tray icon
|
/// common tray icon
|
||||||
pub common_tray_icon: Option<bool>,
|
pub common_tray_icon: Option<bool>,
|
||||||
|
|
||||||
@ -172,6 +175,10 @@ impl IVerge {
|
|||||||
start_page: Some("/".into()),
|
start_page: Some("/".into()),
|
||||||
traffic_graph: Some(true),
|
traffic_graph: Some(true),
|
||||||
enable_memory_usage: 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_auto_launch: Some(false),
|
||||||
enable_silent_start: Some(false),
|
enable_silent_start: Some(false),
|
||||||
enable_system_proxy: Some(false),
|
enable_system_proxy: Some(false),
|
||||||
@ -213,6 +220,7 @@ impl IVerge {
|
|||||||
patch!(startup_script);
|
patch!(startup_script);
|
||||||
patch!(traffic_graph);
|
patch!(traffic_graph);
|
||||||
patch!(enable_memory_usage);
|
patch!(enable_memory_usage);
|
||||||
|
patch!(enable_group_icon);
|
||||||
patch!(common_tray_icon);
|
patch!(common_tray_icon);
|
||||||
patch!(sysproxy_tray_icon);
|
patch!(sysproxy_tray_icon);
|
||||||
patch!(tun_tray_icon);
|
patch!(tun_tray_icon);
|
||||||
|
@ -16,6 +16,7 @@ import { ProxyHead } from "./proxy-head";
|
|||||||
import { ProxyItem } from "./proxy-item";
|
import { ProxyItem } from "./proxy-item";
|
||||||
import { ProxyItemMini } from "./proxy-item-mini";
|
import { ProxyItemMini } from "./proxy-item-mini";
|
||||||
import type { IRenderItem } from "./use-render-list";
|
import type { IRenderItem } from "./use-render-list";
|
||||||
|
import { useVerge } from "@/hooks/use-verge";
|
||||||
|
|
||||||
interface RenderProps {
|
interface RenderProps {
|
||||||
item: IRenderItem;
|
item: IRenderItem;
|
||||||
@ -30,6 +31,8 @@ export const ProxyRender = (props: RenderProps) => {
|
|||||||
const { indent, item, onLocation, onCheckAll, onHeadState, onChangeProxy } =
|
const { indent, item, onLocation, onCheckAll, onHeadState, onChangeProxy } =
|
||||||
props;
|
props;
|
||||||
const { type, group, headState, proxy, proxyCol } = item;
|
const { type, group, headState, proxy, proxyCol } = item;
|
||||||
|
const { verge } = useVerge();
|
||||||
|
const enable_group_icon = verge?.enable_group_icon ?? true;
|
||||||
|
|
||||||
if (type === 0 && !group.hidden) {
|
if (type === 0 && !group.hidden) {
|
||||||
return (
|
return (
|
||||||
@ -37,18 +40,32 @@ export const ProxyRender = (props: RenderProps) => {
|
|||||||
dense
|
dense
|
||||||
onClick={() => onHeadState(group.name, { open: !headState?.open })}
|
onClick={() => onHeadState(group.name, { open: !headState?.open })}
|
||||||
>
|
>
|
||||||
{group.icon && group.icon.trim().startsWith("http") && (
|
{enable_group_icon &&
|
||||||
<img src={group.icon} height="40px" style={{ marginRight: "8px" }} />
|
group.icon &&
|
||||||
)}
|
group.icon.trim().startsWith("http") && (
|
||||||
{group.icon && group.icon.trim().startsWith("data") && (
|
<img
|
||||||
<img src={group.icon} height="40px" style={{ marginRight: "8px" }} />
|
src={group.icon}
|
||||||
)}
|
height="40px"
|
||||||
{group.icon && group.icon.trim().startsWith("<svg") && (
|
style={{ marginRight: "8px" }}
|
||||||
<img
|
/>
|
||||||
src={`data:image/svg+xml;base64,${btoa(group.icon)}`}
|
)}
|
||||||
height="40px"
|
{enable_group_icon &&
|
||||||
/>
|
group.icon &&
|
||||||
)}
|
group.icon.trim().startsWith("data") && (
|
||||||
|
<img
|
||||||
|
src={group.icon}
|
||||||
|
height="40px"
|
||||||
|
style={{ marginRight: "8px" }}
|
||||||
|
/>
|
||||||
|
)}
|
||||||
|
{enable_group_icon &&
|
||||||
|
group.icon &&
|
||||||
|
group.icon.trim().startsWith("<svg") && (
|
||||||
|
<img
|
||||||
|
src={`data:image/svg+xml;base64,${btoa(group.icon)}`}
|
||||||
|
height="40px"
|
||||||
|
/>
|
||||||
|
)}
|
||||||
<ListItemText
|
<ListItemText
|
||||||
primary={group.name}
|
primary={group.name}
|
||||||
secondary={
|
secondary={
|
||||||
|
@ -84,6 +84,19 @@ export const LayoutViewer = forwardRef<DialogRef>((props, ref) => {
|
|||||||
</GuardState>
|
</GuardState>
|
||||||
</SettingItem>
|
</SettingItem>
|
||||||
|
|
||||||
|
<SettingItem label={t("Proxy Group Icon")}>
|
||||||
|
<GuardState
|
||||||
|
value={verge?.enable_group_icon ?? true}
|
||||||
|
valueProps="checked"
|
||||||
|
onCatch={onError}
|
||||||
|
onFormat={onSwitchFormat}
|
||||||
|
onChange={(e) => onChangeData({ enable_group_icon: e })}
|
||||||
|
onGuard={(e) => patchVerge({ enable_group_icon: e })}
|
||||||
|
>
|
||||||
|
<Switch edge="end" />
|
||||||
|
</GuardState>
|
||||||
|
</SettingItem>
|
||||||
|
|
||||||
<SettingItem label={t("Common Tray Icon")}>
|
<SettingItem label={t("Common Tray Icon")}>
|
||||||
<GuardState
|
<GuardState
|
||||||
value={verge?.common_tray_icon}
|
value={verge?.common_tray_icon}
|
||||||
|
@ -110,6 +110,7 @@
|
|||||||
"Hotkey Setting": "Hotkey Setting",
|
"Hotkey Setting": "Hotkey Setting",
|
||||||
"Traffic Graph": "Traffic Graph",
|
"Traffic Graph": "Traffic Graph",
|
||||||
"Memory Usage": "Memory Usage",
|
"Memory Usage": "Memory Usage",
|
||||||
|
"Proxy Group Icon": "Proxy Group Icon",
|
||||||
"Common Tray Icon": "Common Tray Icon",
|
"Common Tray Icon": "Common Tray Icon",
|
||||||
"System Proxy Tray Icon": "System Proxy Tray Icon",
|
"System Proxy Tray Icon": "System Proxy Tray Icon",
|
||||||
"Tun Tray Icon": "Tun Tray Icon",
|
"Tun Tray Icon": "Tun Tray Icon",
|
||||||
|
@ -110,6 +110,7 @@
|
|||||||
"Hotkey Setting": "热键设置",
|
"Hotkey Setting": "热键设置",
|
||||||
"Traffic Graph": "流量图显",
|
"Traffic Graph": "流量图显",
|
||||||
"Memory Usage": "内存使用",
|
"Memory Usage": "内存使用",
|
||||||
|
"Proxy Group Icon": "代理组图标",
|
||||||
"Common Tray Icon": "常规托盘图标",
|
"Common Tray Icon": "常规托盘图标",
|
||||||
"System Proxy Tray Icon": "系统代理托盘图标",
|
"System Proxy Tray Icon": "系统代理托盘图标",
|
||||||
"Tun Tray Icon": "Tun模式托盘图标",
|
"Tun Tray Icon": "Tun模式托盘图标",
|
||||||
|
1
src/services/types.d.ts
vendored
1
src/services/types.d.ts
vendored
@ -200,6 +200,7 @@ interface IVergeConfig {
|
|||||||
theme_mode?: "light" | "dark" | "system";
|
theme_mode?: "light" | "dark" | "system";
|
||||||
traffic_graph?: boolean;
|
traffic_graph?: boolean;
|
||||||
enable_memory_usage?: boolean;
|
enable_memory_usage?: boolean;
|
||||||
|
enable_group_icon?: boolean;
|
||||||
common_tray_icon?: boolean;
|
common_tray_icon?: boolean;
|
||||||
sysproxy_tray_icon?: boolean;
|
sysproxy_tray_icon?: boolean;
|
||||||
tun_tray_icon?: boolean;
|
tun_tray_icon?: boolean;
|
||||||
|
Loading…
x
Reference in New Issue
Block a user