From efe60d7cc20628e39a0cf817bbeb1b286993f254 Mon Sep 17 00:00:00 2001 From: cita Date: Wed, 18 Mar 2026 21:21:38 +0800 Subject: [PATCH] refactor: streamline explicit group editor flow --- src/web/pages/Settings.tsx | 6 +- .../pages/token-routes/ManualRoutePanel.tsx | 774 +++++++++++------- src/web/pages/token-routes/RouteCard.tsx | 12 +- src/web/pages/token-routes/RouteFilterBar.tsx | 6 +- src/web/pages/token-routes/types.ts | 2 +- src/web/pages/token-routes/utils.test.ts | 22 + src/web/pages/token-routes/utils.ts | 11 +- .../pages/tokenRoutes.group-collapse.test.tsx | 106 ++- 8 files changed, 612 insertions(+), 327 deletions(-) create mode 100644 src/web/pages/token-routes/utils.test.ts diff --git a/src/web/pages/Settings.tsx b/src/web/pages/Settings.tsx index 3bc45bb..a47f128 100644 --- a/src/web/pages/Settings.tsx +++ b/src/web/pages/Settings.tsx @@ -16,6 +16,7 @@ import { fuzzyMatch } from './helpers/fuzzySearch.js'; import { clearAuthSession } from '../authSession.js'; import { clearAppInstallationState } from '../appLocalState.js'; import { tr } from '../i18n.js'; +import { ROUTE_ICON_NONE_VALUE } from './token-routes/utils.js'; const PROXY_TOKEN_PREFIX = 'sk-'; const ROUTE_BRAND_ICON_PREFIX = 'brand:'; @@ -1677,7 +1678,8 @@ export default function Settings() { ) : filteredGroupRouteOptions.map((route) => { const checked = downstreamCreate.selectedGroupRouteIds.includes(route.id); const explicitBrandIcon = parseBrandIconValue(route.displayIcon); - const textIcon = explicitBrandIcon ? '' : (route.displayIcon || '').trim(); + const explicitNoIcon = (route.displayIcon || '').trim() === ROUTE_ICON_NONE_VALUE; + const textIcon = explicitBrandIcon || explicitNoIcon ? '' : (route.displayIcon || '').trim(); return (