Bump Harbor clients and clarify disabled local rules
All checks were successful
Build and Deploy Gateway / build-and-push (push) Successful in 18s
Build and Deploy Gateway / deploy (push) Successful in 7s

This commit is contained in:
2026-07-14 21:55:37 +03:00
parent a37c211c42
commit e5a69dcb73
4 changed files with 17 additions and 17 deletions

View File

@@ -1,6 +1,6 @@
export const HARBOR_VERSIONS = Object.freeze({ export const HARBOR_VERSIONS = Object.freeze({
macClient: '0.8.2', macClient: '0.8.3',
gatewayClient: '0.8.2', gatewayClient: '0.8.3',
gatewayBackend: '0.8.0', gatewayBackend: '0.8.0',
}); });

View File

@@ -1095,7 +1095,7 @@ export function ClientOverviewPage({
aria-expanded={localRulesOpen} aria-expanded={localRulesOpen}
aria-controls="client-local-rules" aria-controls="client-local-rules"
aria-label={gatewayDirect aria-label={gatewayDirect
? 'Сейчас работают правила Harbor Gateway' ? 'Локальные правила недоступны: сейчас работают правила Harbor Gateway'
: localRulesOpen ? 'Закрыть локальные правила' : 'Настроить локальные правила'} : localRulesOpen ? 'Закрыть локальные правила' : 'Настроить локальные правила'}
onClick={() => localRulesOpen ? requestCloseLocalRules() : openLocalRules()} onClick={() => localRulesOpen ? requestCloseLocalRules() : openLocalRules()}
> >
@@ -1105,7 +1105,7 @@ export function ClientOverviewPage({
<circle cx="9" cy="17" r="2" /> <circle cx="9" cy="17" r="2" />
</svg> </svg>
<span>{gatewayDirect <span>{gatewayDirect
? 'Сейчас работают правила Gateway' ? 'Локальные правила недоступны: сейчас работают правила Gateway'
: localRulesPendingRestart ? 'Правила ждут перезапуска' : 'Локальные правила'}</span> : localRulesPendingRestart ? 'Правила ждут перезапуска' : 'Локальные правила'}</span>
</button> </button>
</nav>} </nav>}

View File

@@ -749,7 +749,13 @@ p {
} }
.client-local-rules-toggle:disabled span { .client-local-rules-toggle:disabled span {
opacity: 0.7; opacity: 0;
filter: blur(5px);
transform: translateX(8px);
}
.client-local-rules-toggle:disabled:hover span {
opacity: 1;
filter: blur(0); filter: blur(0);
transform: translateX(0); transform: translateX(0);
} }
@@ -3451,18 +3457,6 @@ p {
right: 8px; right: 8px;
} }
.client-local-rules-toggle:disabled span {
opacity: 0;
filter: blur(5px);
transform: translateX(8px);
}
.client-local-rules-toggle:disabled:hover span {
opacity: 1;
filter: blur(0);
transform: translateX(0);
}
.client-access-tabs .client-access-tab, .client-access-tabs .client-access-tab,
.client-copy-button { .client-copy-button {
min-height: 44px; min-height: 44px;

View File

@@ -74,10 +74,16 @@ test('tablet and mobile regions use normal flow with viewport-safe widths', () =
}); });
test('secondary menus share one right rail and both drawers open from the right', () => { test('secondary menus share one right rail and both drawers open from the right', () => {
const disabledRulesLabel = rule('.client-local-rules-toggle:disabled span');
assert.match(component, /<nav className="client-secondary-menu" aria-label="Дополнительные меню">/); assert.match(component, /<nav className="client-secondary-menu" aria-label="Дополнительные меню">/);
assert.match(component, /client-instructions-toggle[\s\S]*client-local-rules-toggle/); assert.match(component, /client-instructions-toggle[\s\S]*client-local-rules-toggle/);
assert.match(component, /Локальные правила недоступны: сейчас работают правила Gateway/);
assert.match(rule('.client-secondary-menu'), /right:\s*max\(14px, env\(safe-area-inset-right\)\)/); assert.match(rule('.client-secondary-menu'), /right:\s*max\(14px, env\(safe-area-inset-right\)\)/);
assert.match(rule('.client-secondary-menu'), /display:\s*grid/); assert.match(rule('.client-secondary-menu'), /display:\s*grid/);
assert.match(disabledRulesLabel, /opacity:\s*0/);
assert.match(disabledRulesLabel, /filter:\s*blur\(5px\)/);
assert.match(styles, /\.client-local-rules-toggle:disabled:hover span\s*\{[\s\S]*opacity:\s*1/);
assert.match(rule('.client-instructions'), /inset:\s*0 0 0 auto/); assert.match(rule('.client-instructions'), /inset:\s*0 0 0 auto/);
assert.match(rule('.client-instructions'), /transform:\s*translateX\(104%\)/); assert.match(rule('.client-instructions'), /transform:\s*translateX\(104%\)/);
assert.match(rule('.client-local-rules'), /inset:\s*0 0 0 auto/); assert.match(rule('.client-local-rules'), /inset:\s*0 0 0 auto/);