Simplify client proxy port handling
This commit is contained in:
@@ -203,6 +203,7 @@ function ProxySettings({ state, settings, busy, onSave }) {
|
||||
const parsed = Number.parseInt(draftPort, 10);
|
||||
const invalid = !Number.isInteger(parsed) || parsed < range.start || parsed > range.end;
|
||||
const dirty = !invalid && parsed !== port;
|
||||
const singlePublishedPort = range.start === range.end;
|
||||
|
||||
return (
|
||||
<aside className="client-side-panel">
|
||||
@@ -222,17 +223,20 @@ function ProxySettings({ state, settings, busy, onSave }) {
|
||||
min={range.start}
|
||||
max={range.end}
|
||||
value={draftPort}
|
||||
disabled={singlePublishedPort}
|
||||
onChange={(e) => setDraftPort(e.target.value)}
|
||||
/>
|
||||
<button
|
||||
className="btn btn-secondary"
|
||||
disabled={busy || !dirty}
|
||||
disabled={busy || singlePublishedPort || !dirty}
|
||||
onClick={() => onSave({ ...settings, proxyPort: parsed })}
|
||||
>
|
||||
Save
|
||||
</button>
|
||||
</div>
|
||||
<small className={invalid ? 'field-error' : 'field-hint'}>{range.start}–{range.end}</small>
|
||||
<small className={invalid ? 'field-error' : 'field-hint'}>
|
||||
{singlePublishedPort ? 'Порт задаётся установщиком' : `${range.start}–${range.end}`}
|
||||
</small>
|
||||
</div>
|
||||
</aside>
|
||||
);
|
||||
|
||||
Reference in New Issue
Block a user