diff --git a/web/src/lib/components/mihomo/mihomo-proxy-groups.svelte b/web/src/lib/components/mihomo/mihomo-proxy-groups.svelte index 44c7db7..9e1a002 100644 --- a/web/src/lib/components/mihomo/mihomo-proxy-groups.svelte +++ b/web/src/lib/components/mihomo/mihomo-proxy-groups.svelte @@ -5,17 +5,17 @@ import { Badge } from '$lib/components/ui/badge/index.js'; import DataQueryState from '$lib/components/fleet/data-query-state.svelte'; import { Skeleton } from '$lib/components/ui/skeleton/index.js'; + import { cn } from '$lib/utils.js'; let { alias, - lazy = false + /** Плотная сетка мелких ячеек — для флота и списков из многих нод. */ + compact = false }: { alias: string; - /** Не запрашивать /proxies до явного нажатия «Загрузить» / «Обновить». */ - lazy?: boolean; + compact?: boolean; } = $props(); - /** Mihomo hub/route/proxies.go: без query `url` URLTest часто даёт delay=0 → HTTP 503. */ const MIHOMO_DELAY_DEFAULT_URL = 'https://www.gstatic.com/generate_204'; let proxiesLoading = $state(false); @@ -48,11 +48,10 @@ $effect(() => { const a = alias; - if (!a || lazy) return; + if (!a) return; void loadProxies(); }); - /** Группы, у которых есть `all` + `now` и PUT /proxies/{name} переключает узел (как в Clash/Mihomo). */ function isSelectableGroup(p: MihomoProxyEntry) { const t = (p.type ?? '').toLowerCase(); if (t === 'selector' || t === 'urltest' || t === 'fallback') return true; @@ -127,91 +126,178 @@ } -