Solstice web interface.
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 

33 lines
1014 B

import React, {PropTypes} from "react";
import {reduxForm} from "redux-form";
import { STATE_CLOSED } from "../constants/socket";
import ControlRequest from "../utils/ControlRequest";
const ConnectForm = (props) => {
const { fields: { url }, handleSubmit, socket, socketActions } = props;
const submit = (values, dispatch) => {
dispatch(socketActions.open(values.url));
};
return (
<form onSubmit={handleSubmit(submit)}>
<input type="url" defaultValue="ws://localhost:2244" {...url}
required pattern="wss?://.+"/>
<button type="submit" disabled={socket.state !== STATE_CLOSED}>
Connect
</button>
</form>
);
};
ConnectForm.propTypes = {
fields: PropTypes.object.isRequired,
handleSubmit: PropTypes.func.isRequired,
socket: PropTypes.object.isRequired,
socketActions: PropTypes.object.isRequired
};
export default reduxForm({
form: "connect",
fields: ["url"]
})(ConnectForm);