diff --git a/src/shared/versions.ts b/src/shared/versions.ts index 4e8a0e6..b19d110 100644 --- a/src/shared/versions.ts +++ b/src/shared/versions.ts @@ -1,6 +1,6 @@ export const HARBOR_VERSIONS = Object.freeze({ - macClient: '0.23.5', - gatewayClient: '0.24.5', + macClient: '0.23.6', + gatewayClient: '0.24.6', gatewayBackend: '0.24.0', }); diff --git a/src/web/components/ClientOverviewPage.tsx b/src/web/components/ClientOverviewPage.tsx index 742de10..990ad77 100644 --- a/src/web/components/ClientOverviewPage.tsx +++ b/src/web/components/ClientOverviewPage.tsx @@ -728,6 +728,7 @@ export function ClientOverviewPage({ prompt={!profile.desiredServerId} leaving={pickerState.leaving} revealVersion={pickerState.revealVersion} + anchorServerId={pickerState.anchorServerId} onSelect={(serverId) => selectServer(profile, serverId)} />} /> diff --git a/src/web/features/servers/ServerPicker.tsx b/src/web/features/servers/ServerPicker.tsx index b3ff71c..bbe16a3 100644 --- a/src/web/features/servers/ServerPicker.tsx +++ b/src/web/features/servers/ServerPicker.tsx @@ -167,6 +167,7 @@ interface ServerPickerProps { prompt: boolean; leaving: boolean; revealVersion: number; + anchorServerId?: string; onSelect: (id: string) => unknown; } @@ -179,6 +180,7 @@ export function ServerPicker({ prompt, leaving, revealVersion, + anchorServerId = '', onSelect, }: ServerPickerProps) { const favoritesKey = `${FAVORITES_KEY}:${profileId}`; @@ -207,7 +209,7 @@ export function ServerPicker({ if (view === 'recent') return recent.flatMap((id) => found.find((server) => server.id === id) || []); return found; }, [servers, query, view, favorites, recent]); - const results = filtered.filter(({ id }) => id !== selectedServerId); + const results = filtered.filter(({ id }) => id !== selectedServerId && id !== anchorServerId); const pageCount = Math.max(1, Math.ceil(results.length / SERVER_RESULT_WINDOW)); const visible = results.slice(page * SERVER_RESULT_WINDOW, (page + 1) * SERVER_RESULT_WINDOW); const grouped = servers.length >= 10; @@ -282,7 +284,7 @@ export function ServerPicker({
- + />}
; } @@ -310,8 +312,8 @@ export function ServerPicker({ )); const simpleServers = [ - ...(selected ? [selected] : []), - ...servers.filter(({ id }) => id !== selectedServerId), + ...(selected && selected.id !== anchorServerId ? [selected] : []), + ...servers.filter(({ id }) => id !== selectedServerId && id !== anchorServerId), ].slice(0, SIMPLE_SERVER_LIMIT); return
@@ -403,7 +405,7 @@ export function ServerPicker({ fallback={autoActive ? undefined : 'Первый стабильный сервер'} /> - {selected && {localStatus}} - {!expanded && !closing && visibleServer &&