Lidarr/frontend/src/Settings/General/ProxySettings.js

159 lines
4.1 KiB
JavaScript
Raw Normal View History

import PropTypes from 'prop-types';
import React from 'react';
import FieldSet from 'Components/FieldSet';
import FormGroup from 'Components/Form/FormGroup';
import FormInputGroup from 'Components/Form/FormInputGroup';
2020-09-07 01:33:10 +00:00
import FormLabel from 'Components/Form/FormLabel';
import { inputTypes, sizes } from 'Helpers/Props';
2021-10-03 15:01:09 +00:00
import translate from 'Utilities/String/translate';
function ProxySettings(props) {
const {
settings,
onInputChange
} = props;
const {
proxyEnabled,
proxyType,
proxyHostname,
proxyPort,
proxyUsername,
proxyPassword,
proxyBypassFilter,
proxyBypassLocalAddresses
} = settings;
const proxyTypeOptions = [
{ key: 'http', value: 'HTTP(S)' },
{ key: 'socks4', value: 'Socks4' },
{ key: 'socks5', value: 'Socks5 (Support TOR)' }
];
return (
2021-10-03 15:01:09 +00:00
<FieldSet legend={translate('Proxy')}>
<FormGroup size={sizes.MEDIUM}>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('UseProxy')}
</FormLabel>
<FormInputGroup
type={inputTypes.CHECK}
name="proxyEnabled"
onChange={onInputChange}
{...proxyEnabled}
/>
</FormGroup>
{
proxyEnabled.value &&
2020-06-27 21:51:59 +00:00
<div>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('ProxyType')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.SELECT}
name="proxyType"
values={proxyTypeOptions}
onChange={onInputChange}
{...proxyType}
/>
</FormGroup>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('Hostname')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.TEXT}
name="proxyHostname"
onChange={onInputChange}
{...proxyHostname}
/>
</FormGroup>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('Port')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.NUMBER}
name="proxyPort"
min={1}
max={65535}
onChange={onInputChange}
{...proxyPort}
/>
</FormGroup>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('Username')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.TEXT}
name="proxyUsername"
2021-10-03 15:01:09 +00:00
helpText={translate('ProxyUsernameHelpText')}
2020-06-27 21:51:59 +00:00
onChange={onInputChange}
{...proxyUsername}
/>
</FormGroup>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('Password')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.PASSWORD}
name="proxyPassword"
2021-10-03 15:01:09 +00:00
helpText={translate('ProxyPasswordHelpText')}
2020-06-27 21:51:59 +00:00
onChange={onInputChange}
{...proxyPassword}
/>
</FormGroup>
<FormGroup>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('IgnoredAddresses')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.TEXT}
name="proxyBypassFilter"
2021-10-03 15:01:09 +00:00
helpText={translate('ProxyBypassFilterHelpText')}
2020-06-27 21:51:59 +00:00
onChange={onInputChange}
{...proxyBypassFilter}
/>
</FormGroup>
<FormGroup size={sizes.MEDIUM}>
2021-10-03 15:01:09 +00:00
<FormLabel>
{translate('BypassProxyForLocalAddresses')}
</FormLabel>
2020-06-27 21:51:59 +00:00
<FormInputGroup
type={inputTypes.CHECK}
name="proxyBypassLocalAddresses"
onChange={onInputChange}
{...proxyBypassLocalAddresses}
/>
</FormGroup>
</div>
}
</FieldSet>
);
}
ProxySettings.propTypes = {
settings: PropTypes.object.isRequired,
onInputChange: PropTypes.func.isRequired
};
export default ProxySettings;