|
|
|
@ -0,0 +1,33 @@ |
|
|
|
import React, {PropTypes} from "react"; |
|
|
|
import {reduxForm} from "redux-form"; |
|
|
|
|
|
|
|
import { STATE_CLOSED } from "../constants/socket"; |
|
|
|
|
|
|
|
|
|
|
|
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); |