From 5e1e09d7bf1bb3f55221356be4d8385176c069de Mon Sep 17 00:00:00 2001 From: MystiPanda Date: Sun, 11 Feb 2024 17:59:56 +0800 Subject: [PATCH] fix: Custom GLOBAL group display error --- src/services/api.ts | 24 +++++++++++++----------- 1 file changed, 13 insertions(+), 11 deletions(-) diff --git a/src/services/api.ts b/src/services/api.ts index 83f8aca5..b8c42a92 100644 --- a/src/services/api.ts +++ b/src/services/api.ts @@ -107,7 +107,6 @@ export const getProxies = async () => { getProxiesInner(), getProxyProviders(), ]); - // provider name map const providerMap = Object.fromEntries( Object.entries(providerRecord).flatMap(([provider, item]) => @@ -131,24 +130,27 @@ export const getProxies = async () => { const { GLOBAL: global, DIRECT: direct, REJECT: reject } = proxyRecord; - let groups: IProxyGroupItem[] = []; + let groups = Object.values(proxyRecord) + .filter((each) => each.name !== "GLOBAL" && each.all) + .map((each) => ({ + ...each, + all: each.all!.map((item) => generateItem(item)), + })); if (global?.all) { - groups = global.all + let globalGroups = global.all .filter((name) => proxyRecord[name]?.all) .map((name) => proxyRecord[name]) .map((each) => ({ ...each, all: each.all!.map((item) => generateItem(item)), })); - } else { - groups = Object.values(proxyRecord) - .filter((each) => each.name !== "GLOBAL" && each.all) - .map((each) => ({ - ...each, - all: each.all!.map((item) => generateItem(item)), - })) - .sort((a, b) => b.name.localeCompare(a.name)); + let globalNames = globalGroups.map((each) => each.name); + groups = groups + .filter((group) => { + return !globalNames.includes(group.name); + }) + .concat(globalGroups); } const proxies = [direct, reject].concat(