badguardhome/client/src/install/Setup/Devices.js

135 lines
5.1 KiB
JavaScript
Raw Normal View History

2019-01-18 17:17:48 +00:00
import React from 'react';
2019-02-01 16:52:42 +00:00
import PropTypes from 'prop-types';
import { connect } from 'react-redux';
import { reduxForm, formValueSelector } from 'redux-form';
2019-01-22 14:54:18 +00:00
import { Trans, withNamespaces } from 'react-i18next';
2019-02-01 16:52:42 +00:00
import flow from 'lodash/flow';
2019-01-18 17:17:48 +00:00
import Tabs from '../../components/ui/Tabs';
import Icons from '../../components/ui/Icons';
import Controls from './Controls';
2019-02-04 14:13:59 +00:00
import AddressList from './AddressList';
2019-01-18 17:17:48 +00:00
2019-02-01 16:52:42 +00:00
let Devices = props => (
2019-01-18 17:17:48 +00:00
<div className="setup__step">
<div className="setup__group">
<div className="setup__subtitle">
<Trans>install_devices_title</Trans>
</div>
2019-02-01 16:52:42 +00:00
<div className="setup__desc">
2019-01-18 17:17:48 +00:00
<Trans>install_devices_desc</Trans>
2019-02-01 16:52:42 +00:00
<div className="mt-1">
<Trans>install_devices_address</Trans>:
</div>
2019-02-04 14:13:59 +00:00
<div className="mt-1">
<AddressList
interfaces={props.interfaces}
address={props.dnsIp}
port={props.dnsPort}
isDns={true}
/>
2019-02-01 16:52:42 +00:00
</div>
</div>
2019-01-18 17:17:48 +00:00
<Icons />
<Tabs>
<div label="Router">
<div className="tab__title">
2019-01-21 08:55:39 +00:00
<Trans>install_devices_router</Trans>
2019-01-18 17:17:48 +00:00
</div>
<div className="tab__text">
2019-01-22 14:17:33 +00:00
<p><Trans>install_devices_router_desc</Trans></p>
2019-01-18 17:17:48 +00:00
<ol>
2019-01-22 14:17:33 +00:00
<li><Trans>install_devices_router_list_1</Trans></li>
<li><Trans>install_devices_router_list_2</Trans></li>
<li><Trans>install_devices_router_list_3</Trans></li>
2019-01-18 17:17:48 +00:00
</ol>
</div>
</div>
<div label="Windows">
<div className="tab__title">
Windows
</div>
2019-01-22 14:17:33 +00:00
<div className="tab__text">
<ol>
<li><Trans>install_devices_windows_list_1</Trans></li>
<li><Trans>install_devices_windows_list_2</Trans></li>
<li><Trans>install_devices_windows_list_3</Trans></li>
<li><Trans>install_devices_windows_list_4</Trans></li>
<li><Trans>install_devices_windows_list_5</Trans></li>
<li><Trans>install_devices_windows_list_6</Trans></li>
</ol>
</div>
2019-01-18 17:17:48 +00:00
</div>
<div label="macOS">
<div className="tab__title">
macOS
</div>
2019-01-22 14:17:33 +00:00
<div className="tab__text">
<ol>
<li><Trans>install_devices_macos_list_1</Trans></li>
<li><Trans>install_devices_macos_list_2</Trans></li>
<li><Trans>install_devices_macos_list_3</Trans></li>
<li><Trans>install_devices_macos_list_4</Trans></li>
</ol>
</div>
2019-01-18 17:17:48 +00:00
</div>
<div label="Android">
<div className="tab__title">
Android
</div>
2019-01-22 14:17:33 +00:00
<div className="tab__text">
<ol>
<li><Trans>install_devices_android_list_1</Trans></li>
<li><Trans>install_devices_android_list_2</Trans></li>
<li><Trans>install_devices_android_list_3</Trans></li>
<li><Trans>install_devices_android_list_4</Trans></li>
<li><Trans>install_devices_android_list_5</Trans></li>
</ol>
</div>
2019-01-18 17:17:48 +00:00
</div>
<div label="iOS">
<div className="tab__title">
iOS
</div>
2019-01-22 14:17:33 +00:00
<div className="tab__text">
<ol>
<li><Trans>install_devices_ios_list_1</Trans></li>
<li><Trans>install_devices_ios_list_2</Trans></li>
<li><Trans>install_devices_ios_list_3</Trans></li>
<li><Trans>install_devices_ios_list_4</Trans></li>
</ol>
</div>
2019-01-18 17:17:48 +00:00
</div>
</Tabs>
</div>
<Controls />
</div>
);
2019-02-01 16:52:42 +00:00
Devices.propTypes = {
2019-02-04 14:13:59 +00:00
interfaces: PropTypes.object.isRequired,
2019-02-01 16:52:42 +00:00
dnsIp: PropTypes.string.isRequired,
dnsPort: PropTypes.number.isRequired,
};
const selector = formValueSelector('install');
Devices = connect((state) => {
const dnsIp = selector(state, 'dns.ip');
const dnsPort = selector(state, 'dns.port');
return {
dnsIp,
dnsPort,
};
})(Devices);
export default flow([
withNamespaces(),
reduxForm({
form: 'install',
destroyOnUnmount: false,
forceUnregisterOnUnmount: true,
}),
])(Devices);