blob: 6ef352c2570100fbc664c69e5c0ad136df0538ae [file] [log] [blame]
import PropTypes from 'prop-types';
import React, { Component } from "react";
import { validateDomain, normalizeUrls } from "../helpers";
export default class OriginInput extends Component {
constructor(props) {
super(props);
this.state = {
origin: ''
};
}
onInputChange(e) {
this.setState({ origin: e.target.value });
}
addOrigin(event) {
event.preventDefault();
if (!validateDomain(this.state.origin)) {
return false;
}
const url = normalizeUrls(this.state.origin);
this.props.addOrigin(url);
this.setState({ origin: '' });
}
onKeyUp(e) {
if (e.keyCode == 13) { //enter key
return this.addOrigin(e);
}
}
render() {
if (!this.props.isVisible) {
return null;
}
return (
<div id="origin-domains-container">
<div className="origin-domains">
<div className="input-append">
<input type="text" name="new_origin_domain" placeholder="https://example.com"
onChange={this.onInputChange.bind(this)} value={this.state.origin} />
<button onClick={this.addOrigin.bind(this)} className="btn btn-secondary add-domain">
<i className="icon fonticon-ok-circled"></i> Add Domain
</button>
</div>
</div>
</div>
);
}
}
OriginInput.propTypes = {
isVisible: PropTypes.bool.isRequired,
addOrigin: PropTypes.func.isRequired
};