Update Harbor Gateway UI for direct routing mode
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-11 23:47:45 +03:00
parent 62d2044dc1
commit 483fce55f3
3 changed files with 21 additions and 5 deletions

View File

@@ -1,6 +1,6 @@
export const HARBOR_VERSIONS = Object.freeze({ export const HARBOR_VERSIONS = Object.freeze({
macClient: '0.6.2', macClient: '0.6.3',
gatewayClient: '0.6.1', gatewayClient: '0.6.2',
gatewayBackend: '0.6.0', gatewayBackend: '0.6.0',
}); });

View File

@@ -1054,9 +1054,12 @@ export function ClientOverviewPage({
ref={localRulesToggleRef} ref={localRulesToggleRef}
className={`client-local-rules-toggle${localRulesOpen ? ' is-open' : ''}${state?.route?.localRulesPendingRestart ? ' has-pending' : ''}`} className={`client-local-rules-toggle${localRulesOpen ? ' is-open' : ''}${state?.route?.localRulesPendingRestart ? ' has-pending' : ''}`}
type="button" type="button"
disabled={gatewayDirect}
aria-expanded={localRulesOpen} aria-expanded={localRulesOpen}
aria-controls="client-local-rules" aria-controls="client-local-rules"
aria-label={localRulesOpen ? 'Закрыть локальные правила' : 'Настроить локальные правила'} aria-label={gatewayDirect
? 'Сейчас работают правила Harbor Gateway'
: localRulesOpen ? 'Закрыть локальные правила' : 'Настроить локальные правила'}
onClick={() => localRulesOpen ? requestCloseLocalRules() : openLocalRules()} onClick={() => localRulesOpen ? requestCloseLocalRules() : openLocalRules()}
> >
<svg viewBox="0 0 24 24" aria-hidden="true"> <svg viewBox="0 0 24 24" aria-hidden="true">
@@ -1064,7 +1067,9 @@ export function ClientOverviewPage({
<circle cx="15" cy="7" r="2" /> <circle cx="15" cy="7" r="2" />
<circle cx="9" cy="17" r="2" /> <circle cx="9" cy="17" r="2" />
</svg> </svg>
<span>{state?.route?.localRulesPendingRestart ? 'Правила ждут перезапуска' : 'Локальные правила'}</span> <span>{gatewayDirect
? 'Сейчас работают правила Gateway'
: state?.route?.localRulesPendingRestart ? 'Правила ждут перезапуска' : 'Локальные правила'}</span>
</button>} </button>}
<main className={`client-panel${showPower ? '' : ' is-setup'}`}> <main className={`client-panel${showPower ? '' : ' is-setup'}`}>
{showPower && ( {showPower && (
@@ -1184,7 +1189,7 @@ export function ClientOverviewPage({
<span className={`client-proxy-label${gatewayDirect ? ' is-gateway' : ''}`}> <span className={`client-proxy-label${gatewayDirect ? ' is-gateway' : ''}`}>
<span className={!gatewayDirect ? 'is-active' : ''}>Локальный VPN</span> <span className={!gatewayDirect ? 'is-active' : ''}>Локальный VPN</span>
<span className={gatewayDirect ? 'is-active' : ''}> <span className={gatewayDirect ? 'is-active' : ''}>
Через <a href={`http://${state.gatewayAuto.address}:8080`}>Harbor Gateway</a> · {state.gatewayAuto.address} Через <a href={`http://${state.gatewayAuto.address}:3456`}>Harbor Gateway</a> · {state.gatewayAuto.address}
</span> </span>
</span> </span>
)} )}

View File

@@ -779,6 +779,17 @@ p {
transform: translateX(0); transform: translateX(0);
} }
.client-local-rules-toggle:disabled {
cursor: default;
color: var(--client-muted);
}
.client-local-rules-toggle:disabled span {
opacity: 0.7;
filter: blur(0);
transform: translateX(0);
}
.client-local-rules-toggle.is-open { .client-local-rules-toggle.is-open {
color: var(--client-accent); color: var(--client-accent);
} }