blob: 81d93a9fbf4ef8033fc2dfde1719560562d30923 [file] [log] [blame]
import PropTypes from 'prop-types';
import React, { Component } from "react";
import { Button, Form, InputGroup } from 'react-bootstrap';
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">
<InputGroup>
<Form.Control
name="new_origin_domain"
placeholder="https://example.com"
onChange={this.onInputChange.bind(this)}
value={this.state.origin}
aria-label="New domain name"
/>
<Button variant="cf-secondary" id="add-domain" onClick={this.addOrigin.bind(this)}>
<i className="fonticon-ok-circled"></i> Add Domain
</Button>
</InputGroup>
</div>
</div>
);
}
}
OriginInput.propTypes = {
isVisible: PropTypes.bool.isRequired,
addOrigin: PropTypes.func.isRequired
};