diff --git a/src/shared/versions.js b/src/shared/versions.js index 3161c0c..723370b 100644 --- a/src/shared/versions.js +++ b/src/shared/versions.js @@ -1,6 +1,6 @@ export const HARBOR_VERSIONS = Object.freeze({ - macClient: '0.7.19', - gatewayClient: '0.7.19', + macClient: '0.7.20', + gatewayClient: '0.7.20', gatewayBackend: '0.7.1', }); diff --git a/src/web/components/ServerPicker.jsx b/src/web/components/ServerPicker.jsx index 9c5899d..2dea6e2 100644 --- a/src/web/components/ServerPicker.jsx +++ b/src/web/components/ServerPicker.jsx @@ -36,11 +36,15 @@ function readAuto() { } } +function serverHealthText(ping) { + if (ping?.checking) return 'Проверяем TCP…'; + if (ping?.error) return 'Проверка недоступна'; + if (ping?.ok) return `TCP ${ping.latency} мс`; + return ping ? 'TCP недоступен' : 'Не проверен'; +} + function ServerRow({ server, selected, favorite, ping, disabled, index, onSelect, onFavorite }) { - const health = ping?.checking - ? 'Проверяем TCP…' - : ping?.error ? 'Проверка недоступна' - : ping?.ok ? `TCP ${ping.latency} мс` : ping ? 'TCP недоступен' : 'Не проверен'; + const health = serverHealthText(ping); return
)} -
@@ -265,7 +270,9 @@ export function ServerPicker({ onClick={() => select(autoServer(servers)?.id, true)} > Auto - Первый стабильный сервер + + {autoActive ? serverHealthText(pings[selectedServerId]) : 'Первый стабильный сервер'} + {selected && !autoActive && { + assert.match(picker, /autoActive \? serverHealthText\(pings\[selectedServerId\]\)/); + assert.match(picker, /disabled={checking \|\| \(!selectedServerId && !visible\.length\)}/); + assert.match(picker, /simpleServers\.map[\s\S]*?ping={pings\[server\.id\]}/); +}); + test('server picker starts simple and reveals advanced controls on demand', () => { assert.match(picker, /const \[advanced, setAdvanced\] = useState\(false\)/); assert.match(picker, /aria-expanded={advanced}/);