diff --git a/src/components/ConnectForm.js b/src/components/ConnectForm.js index 1fae4b1..a78fb21 100644 --- a/src/components/ConnectForm.js +++ b/src/components/ConnectForm.js @@ -1,5 +1,6 @@ import React, {PropTypes} from "react"; import {reduxForm} from "redux-form"; +import ImmutablePropTypes from "react-immutable-proptypes"; import SocketStatusPane from "./SocketStatusPane"; import { STATE_CLOSED } from "../constants/socket"; @@ -11,26 +12,31 @@ const ConnectForm = (props) => { return actions.socket.open(values.url, actions.socketHandlers); }); + const isSocketClosed = socket.get("state") === STATE_CLOSED; + return (

Connect to a solstice client

-
- +
); }; ConnectForm.propTypes = { - fields: PropTypes.object.isRequired, + fields: PropTypes.object.isRequired, handleSubmit: PropTypes.func.isRequired, - socket: PropTypes.object.isRequired, - actions: PropTypes.object.isRequired + socket: ImmutablePropTypes.map.isRequired, + actions: PropTypes.object.isRequired }; export default reduxForm({ diff --git a/src/components/SocketStatusPane.js b/src/components/SocketStatusPane.js index 1af38d6..ad44ad9 100644 --- a/src/components/SocketStatusPane.js +++ b/src/components/SocketStatusPane.js @@ -4,8 +4,7 @@ import { STATE_OPENING, STATE_OPEN, STATE_CLOSING, STATE_CLOSED } from "../constants/socket"; -const SocketStatusPane = (props) => { - const { state, url } = props; +const SocketStatusPane = ({ state, url }) => { let string; switch (state) { case STATE_OPENING: diff --git a/src/containers/ConnectPage.js b/src/containers/ConnectPage.js index 7a26fed..876bb24 100644 --- a/src/containers/ConnectPage.js +++ b/src/containers/ConnectPage.js @@ -31,7 +31,7 @@ class ConnectPage extends React.Component { getLoginStatusOrRedirect(props) { const { actions, login, router, socket } = props; - if (socket.state === STATE_OPEN) + if (socket.get("state") === STATE_OPEN) { const loginStatus = login.get("status"); switch (loginStatus) { diff --git a/src/containers/Footer.js b/src/containers/Footer.js index 99d8e8c..506ac3c 100644 --- a/src/containers/Footer.js +++ b/src/containers/Footer.js @@ -8,7 +8,10 @@ import SocketStatusPane from "../components/SocketStatusPane"; const Footer = ({ login, socket }) => { return (