+ {isMainGroup && (
+ <>
+
+ 隐藏仅影响主分组,节点及其他分组仍保留。新节点默认显示;全部隐藏时主分组回退为
+ DIRECT。
+
+ {hiddenSlugs.map((slug) => (
+
+ ))}
+ >
+ )}
{group && !isMainGroup ? (
) : null}
@@ -431,6 +465,19 @@ export function ProxyGroupEditor({
key={node.slug}
node={node}
index={index}
+ hidden={hiddenSlugs.includes(node.slug)}
+ onToggleHidden={
+ isMainGroup
+ ? () => {
+ setHiddenSlugs((current) =>
+ current.includes(node.slug)
+ ? current.filter((s) => s !== node.slug)
+ : [...current, node.slug],
+ );
+ setFeedback("");
+ }
+ : undefined
+ }
removable={!isMainGroup}
onRemove={() => removeNode(node.slug)}
/>
@@ -458,12 +505,14 @@ export function ProxyGroupEditor({
variant="ghost"
size="sm"
onClick={() => {
- const [oldName, oldSlugs] = JSON.parse(saved) as [
+ const [oldName, oldSlugs, oldHidden] = JSON.parse(saved) as [
string,
string[],
+ string[],
];
setName(oldName);
setSelectedSlugs(oldSlugs);
+ setHiddenSlugs(oldHidden);
setFeedback("");
}}
>
@@ -471,7 +520,7 @@ export function ProxyGroupEditor({