diff --git a/web/src/components/Settings.jsx b/web/src/components/Settings.jsx index b2042e4..64a35c2 100644 --- a/web/src/components/Settings.jsx +++ b/web/src/components/Settings.jsx @@ -31,31 +31,13 @@ export default function SettingsDialog() { } useEffect(() => { - fetch(settingsHost(), { - method: 'post', - body: JSON.stringify({ action: 'get' }), - headers: { - Accept: 'application/json, text/plain, */*', - 'Content-Type': 'application/json', - }, - }) - .then(res => res.json()) - .then( - json => { - // eslint-disable-next-line no-param-reassign - json.CacheSize /= 1024 * 1024 - setSets(json) - setShow(true) - }, - error => { - setShow(false) - console.log(error) - }, - ) - .catch(e => { - setShow(false) - console.log(e) + axios + .post(settingsHost(), { action: 'get' }) + .then(({ data }) => { + setSets({ ...data, CacheSize: data.CacheSize / (1024 * 1024) }) + setShow(true) }) + .catch(() => setShow(false)) }, [tsHost]) const onInputHost = event => { @@ -64,18 +46,41 @@ export default function SettingsDialog() { setTSHost(host) } - const inputForm = event => { + const inputForm = ({ target: { type, value, checked, id } }) => { const sets = JSON.parse(JSON.stringify(settings)) - if (event.target.type === 'number' || event.target.type === 'select-one') { - sets[event.target.id] = Number(event.target.value) - } else if (event.target.type === 'checkbox') { - sets[event.target.id] = Boolean(event.target.checked) - } else if (event.target.type === 'url') { - sets[event.target.id] = event.target.value + if (type === 'number' || type === 'select-one') { + sets[id] = Number(value) + } else if (type === 'checkbox') { + sets[id] = Boolean(checked) + } else if (type === 'url') { + sets[id] = value } setSets(sets) } + const { + CacheSize, + PreloadBuffer, + ReaderReadAHead, + RetrackersMode, + TorrentDisconnectTimeout, + EnableIPv6, + ForceEncrypt, + DisableTCP, + DisableUTP, + DisableUPNP, + DisableDHT, + DisablePEX, + DisableUpload, + DownloadRateLimit, + UploadRateLimit, + ConnectionsLimit, + DhtConnectionLimit, + PeersListenPort, + UseDisk, + TorrentsSavePath, + } = settings + return (
@@ -104,14 +109,12 @@ export default function SettingsDialog() { margin='dense' id='CacheSize' label='Cache size' - value={settings.CacheSize} + value={CacheSize} type='number' fullWidth /> - } + control={} label='Preload buffer' />

Retracker mode - @@ -137,53 +140,47 @@ export default function SettingsDialog() { margin='dense' id='TorrentDisconnectTimeout' label='Torrent disconnect timeout' - value={settings.TorrentDisconnectTimeout} + value={TorrentDisconnectTimeout} type='number' fullWidth /> } + control={} label='Enable IPv6' />
- } + control={} label='Force encrypt' />
} + control={} label='Disable TCP' />
} + control={} label='Disable UTP' />
- } + control={} label='Disable UPNP' />
} + control={} label='Disable DHT' />
} + control={} label='Disable PEX' />
- } + control={} label='Disable upload' />
@@ -192,7 +189,7 @@ export default function SettingsDialog() { margin='dense' id='DownloadRateLimit' label='Download rate limit' - value={settings.DownloadRateLimit} + value={DownloadRateLimit} type='number' fullWidth /> @@ -201,7 +198,7 @@ export default function SettingsDialog() { margin='dense' id='UploadRateLimit' label='Upload rate limit' - value={settings.UploadRateLimit} + value={UploadRateLimit} type='number' fullWidth /> @@ -210,7 +207,7 @@ export default function SettingsDialog() { margin='dense' id='ConnectionsLimit' label='Connections limit' - value={settings.ConnectionsLimit} + value={ConnectionsLimit} type='number' fullWidth /> @@ -219,7 +216,7 @@ export default function SettingsDialog() { margin='dense' id='DhtConnectionLimit' label='Dht connection limit' - value={settings.DhtConnectionLimit} + value={DhtConnectionLimit} type='number' fullWidth /> @@ -228,13 +225,13 @@ export default function SettingsDialog() { margin='dense' id='PeersListenPort' label='Peers listen port' - value={settings.PeersListenPort} + value={PeersListenPort} type='number' fullWidth />
} + control={} label='Use disk' />
@@ -243,7 +240,7 @@ export default function SettingsDialog() { margin='dense' id='TorrentsSavePath' label='Torrents save path' - value={settings.TorrentsSavePath} + value={TorrentsSavePath} type='url' fullWidth />