fix(proxies): move an unpicked GLOBAL off DIRECT to its first group

Keep DIRECT and REJECT listed in global mode.
This commit is contained in:
wonfen
2026-11-04 10:17:52 +08:00
parent e4d82a1b3f
commit 84bbe790e8
4 changed files with 62 additions and 16 deletions
+1 -16
View File
@@ -79,18 +79,6 @@ const resolveOccurrences = (view: ProxyViewV1, group: ProxyGroupView) =>
member: resolveMember(view, member),
}))
// mihomo selects DIRECT in GLOBAL by default, so the selected built-in stays visible.
const HIDDEN_GLOBAL_BUILTINS = new Set(['DIRECT', 'REJECT'])
const isHiddenGlobalBuiltin = (
group: ProxyGroupView,
{ member }: ResolvedMemberOccurrence,
) =>
member.kind === 'node' &&
member.node.source.kind === 'core' &&
HIDDEN_GLOBAL_BUILTINS.has(member.node.source.proxyName) &&
member.ref.name !== group.now
const memberKey = (
group: ProxyGroupView,
occurrence: ResolvedMemberOccurrence,
@@ -307,11 +295,8 @@ export const useRenderList = (
]
if (headState.open || isFlat) {
const resolved = resolveOccurrences(proxyView, group)
const occurrences = filterSort(
isFlat
? resolved.filter((item) => !isHiddenGlobalBuiltin(group, item))
: resolved,
resolveOccurrences(proxyView, group),
group.name,
headState.filterText,
headState.sortType,