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
-