From 9c26eaec6fa42f468e534eb472eabd6f118dde7e Mon Sep 17 00:00:00 2001 From: "Scott E. Graves" Date: Sun, 6 Oct 2019 21:48:04 -0500 Subject: [PATCH] Check for duplicate remote hosts --- .../AddRemoteMount/AddRemoteMount.js | 29 +++++++++++++------ 1 file changed, 20 insertions(+), 9 deletions(-) diff --git a/src/containers/AddRemoteMount/AddRemoteMount.js b/src/containers/AddRemoteMount/AddRemoteMount.js index 933c2ae..7f1ad7e 100644 --- a/src/containers/AddRemoteMount/AddRemoteMount.js +++ b/src/containers/AddRemoteMount/AddRemoteMount.js @@ -9,6 +9,12 @@ import Text from '../../components/UI/Text/Text'; import {notifyError} from '../../redux/actions/error_actions'; import {addRemoteMount} from '../../redux/actions/mount_actions'; +const mapStateToProps = state => { + return { + RemoteMounts: state.mounts.RemoteMounts, + }; +}; + const mapDispatchToProps = dispatch => { return { addRemoteMount: (hostNameOrIp, port, token) => dispatch(addRemoteMount(hostNameOrIp, port, token)), @@ -16,7 +22,7 @@ const mapDispatchToProps = dispatch => { } }; -export default connect(null, mapDispatchToProps)(class extends Component { +export default connect(mapStateToProps, mapDispatchToProps)(class extends Component { state = { Display: false, HostNameOrIp: '', @@ -28,16 +34,21 @@ export default connect(null, mapDispatchToProps)(class extends Component { if (this.state.HostNameOrIp.length === 0) { this.props.notifyError('Hostname or IP cannot be empty.'); } else { - this.setState({ - Display: false - }, () => { - this.props.addRemoteMount(this.state.HostNameOrIp, this.state.Port, this.state.Token); + const provider = 'Remote' + this.state.HostNameOrIp + ':' + this.state.Port; + if (this.props.RemoteMounts.includes(provider)) { + this.props.notifyError('Remote host already exists'); + } else { this.setState({ - HostNameOrIp: '', - Port: 20000, - Token: '', + Display: false + }, () => { + this.props.addRemoteMount(this.state.HostNameOrIp, this.state.Port, this.state.Token); + this.setState({ + HostNameOrIp: '', + Port: 20000, + Token: '', + }); }); - }); + } } };