diff --git a/src/actions/socketHandlerActions.js b/src/actions/socketHandlerActions.js index 2bccdaa..a4735dd 100644 --- a/src/actions/socketHandlerActions.js +++ b/src/actions/socketHandlerActions.js @@ -13,18 +13,18 @@ export default { } }), - onerror: event => ({ - type: SOCKET_SET_ERROR - }), + onerror: event => ({ type: SOCKET_SET_ERROR }), - onopen: event => (dispatch, getState) => ({ - type: SOCKET_SET_OPEN - }), + onopen: event => ({ type: SOCKET_SET_OPEN }), onmessage: event => { const action = { type: SOCKET_RECEIVE_MESSAGE }; try { - action.payload = JSON.parse(event.data); + const { variant, fields: [data] } = JSON.parse(event.data); + if (typeof variant === "undefined") { + throw new Error('Missing "variant" field in control response'); + } + action.payload = { variant, data }; } catch (err) { action.error = true; action.payload = err; diff --git a/src/components/ConnectForm.js b/src/components/ConnectForm.js index 2b8d2f6..e8952a4 100644 --- a/src/components/ConnectForm.js +++ b/src/components/ConnectForm.js @@ -5,12 +5,12 @@ 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)); - }; + const { fields: { url }, handleSubmit, socket, socketOpen } = props; + + const onSubmit = handleSubmit((values) => socketOpen(values.url)); + return ( -
+