Clean up container/component relationship
This commit is contained in:
parent
8b0a53b375
commit
993d29242e
22 changed files with 384 additions and 372 deletions
|
@ -1,48 +1,17 @@
|
|||
import React, { PureComponent } from 'react';
|
||||
import { bindActionCreators } from 'redux';
|
||||
import { connect } from 'react-redux';
|
||||
import { createStructuredSelector } from 'reselect';
|
||||
import Navicon from '../components/Navicon';
|
||||
import FileInput from '../components/FileInput';
|
||||
import Settings from '../components/pages/Settings';
|
||||
import { getSettings, setCert, setKey, uploadCert } from '../state/settings';
|
||||
|
||||
class Settings extends PureComponent {
|
||||
handleCertChange = (name, data) => this.props.dispatch(setCert(name, data));
|
||||
handleKeyChange = (name, data) => this.props.dispatch(setKey(name, data));
|
||||
handleCertUpload = () => this.props.dispatch(uploadCert());
|
||||
|
||||
render() {
|
||||
const { settings } = this.props;
|
||||
const status = settings.get('uploadingCert') ? 'Uploading...' : 'Upload';
|
||||
const error = settings.get('certError');
|
||||
|
||||
return (
|
||||
<div className="settings">
|
||||
<Navicon />
|
||||
<h1>Settings</h1>
|
||||
<h2>Client Certificate</h2>
|
||||
<div>
|
||||
<p>Certificate</p>
|
||||
<FileInput
|
||||
name={settings.get('certFile') || 'Select Certificate'}
|
||||
onChange={this.handleCertChange}
|
||||
/>
|
||||
</div>
|
||||
<div>
|
||||
<p>Private Key</p>
|
||||
<FileInput
|
||||
name={settings.get('keyFile') || 'Select Key'}
|
||||
onChange={this.handleKeyChange}
|
||||
/>
|
||||
</div>
|
||||
<button onClick={this.handleCertUpload}>{status}</button>
|
||||
{ error ? <p className="error">{error}</p> : null }
|
||||
</div>
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
const mapState = createStructuredSelector({
|
||||
settings: getSettings
|
||||
});
|
||||
|
||||
export default connect(mapState)(Settings);
|
||||
const mapDispatch = dispatch => ({
|
||||
onCertChange(name, data) { dispatch(setCert(name, data)); },
|
||||
onKeyChange(name, data) { dispatch(setKey(name, data)); },
|
||||
...bindActionCreators({ uploadCert }, dispatch)
|
||||
});
|
||||
|
||||
export default connect(mapState, mapDispatch)(Settings);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue