diff --git a/web/src/components/Settings/SettingsDialog.jsx b/web/src/components/Settings/SettingsDialog.jsx
index c235341..5ed27c9 100644
--- a/web/src/components/Settings/SettingsDialog.jsx
+++ b/web/src/components/Settings/SettingsDialog.jsx
@@ -1,13 +1,9 @@
import axios from 'axios'
import Dialog from '@material-ui/core/Dialog'
-import DialogTitle from '@material-ui/core/DialogTitle'
-import DialogContent from '@material-ui/core/DialogContent'
import TextField from '@material-ui/core/TextField'
-import DialogActions from '@material-ui/core/DialogActions'
import Button from '@material-ui/core/Button'
import Checkbox from '@material-ui/core/Checkbox'
import {
- ButtonGroup,
FormControlLabel,
Grid,
Input,
@@ -27,6 +23,7 @@ import Tabs from '@material-ui/core/Tabs'
import Tab from '@material-ui/core/Tab'
import SwipeableViews from 'react-swipeable-views'
import { USBIcon, RAMIcon } from 'icons'
+import CircularProgress from '@material-ui/core/CircularProgress'
import {
FooterSection,
@@ -36,70 +33,31 @@ import {
SecondarySettingsContent,
StorageButton,
StorageIconWrapper,
- CacheSizeSettings,
CacheStorageSelector,
- CacheStorageSettings,
- SettingSection,
- SettingLabel,
SettingSectionLabel,
PreloadCachePercentage,
cacheBeforeReaderColor,
cacheAfterReaderColor,
+ Content,
} from './style'
-
-const a11yProps = index => ({
- id: `full-width-tab-${index}`,
- 'aria-controls': `full-width-tabpanel-${index}`,
-})
-
-const TabPanel = ({ children, value, index, ...other }) => (
-
- {value === index && <>{children}>}
-
-)
-
-const defaultSettings = {
- CacheSize: 96,
- ReaderReadAHead: 95,
- UseDisk: false,
- UploadRateLimit: 0,
- TorrentsSavePath: '',
- ConnectionsLimit: 23,
- DhtConnectionLimit: 500,
- DisableDHT: false,
- DisablePEX: false,
- DisableTCP: false,
- DisableUPNP: false,
- DisableUTP: true,
- DisableUpload: false,
- DownloadRateLimit: 0,
- EnableDebug: false,
- EnableIPv6: false,
- ForceEncrypt: false,
- PeersListenPort: 0,
- PreloadBuffer: false,
- RemoveCacheOnDrop: false,
- RetrackersMode: 1,
- Strategy: 0,
- TorrentDisconnectTimeout: 30,
-}
+import defaultSettings from './defaultSettings'
+import { a11yProps, TabPanel } from './tabComponents'
export default function SettingsDialog({ handleClose }) {
const { t } = useTranslation()
-
const fullScreen = useMediaQuery('@media (max-width:930px)')
+ const { direction } = useTheme()
const [settings, setSettings] = useState()
- const [show, setShow] = useState(false)
+ const [selectedTab, setSelectedTab] = useState(0)
+ const [cacheSize, setCacheSize] = useState(32)
+ const [cachePercentage, setCachePercentage] = useState(40)
+ const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)
useEffect(() => {
- axios
- .post(settingsHost(), { action: 'get' })
- .then(({ data }) => {
- setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })
- setShow(true)
- })
- .catch(() => setShow(false))
+ axios.post(settingsHost(), { action: 'get' }).then(({ data }) => {
+ setSettings({ ...data, CacheSize: data.CacheSize / (1024 * 1024) })
+ })
}, [])
const handleSave = () => {
@@ -155,19 +113,6 @@ export default function SettingsDialog({ handleClose }) {
RemoveCacheOnDrop,
} = settings || {}
- const updateSettings = newProps => setSettings({ ...settings, ...newProps })
-
- const { direction } = useTheme()
- const [selectedTab, setSelectedTab] = useState(0)
-
- const handleChange = (_, newValue) => setSelectedTab(newValue)
-
- const handleChangeIndex = index => setSelectedTab(index)
-
- const [cacheSize, setCacheSize] = useState(32)
- const [cachePercentage, setCachePercentage] = useState(40)
- const [isProMode, setIsProMode] = useState(JSON.parse(localStorage.getItem('isProMode')) || false)
-
useEffect(() => {
if (!CacheSize || !ReaderReadAHead) return
@@ -175,331 +120,339 @@ export default function SettingsDialog({ handleClose }) {
setCachePercentage(ReaderReadAHead)
}, [CacheSize, ReaderReadAHead])
+ const updateSettings = newProps => setSettings({ ...settings, ...newProps })
+ const handleChange = (_, newValue) => setSelectedTab(newValue)
+ const handleChangeIndex = index => setSelectedTab(index)
const handleBlur = ({ target: { value } }) => {
if (value < 32) return setCacheSize(32)
if (value > 20000) return setCacheSize(20000)
setCacheSize(Math.round(value / 8) * 8)
}
-
- const handleInputChange = ({ target: { value } }) => {
- setCacheSize(value === '' ? '' : Number(value))
- }
+ const handleInputChange = ({ target: { value } }) => setCacheSize(value === '' ? '' : Number(value))
return (