diff --git a/src/index.js b/src/index.js
index 710dd4b..14f9663 100644
--- a/src/index.js
+++ b/src/index.js
@@ -16,13 +16,7 @@ import Nav from './ui/navigation';
import Main from './ui/main';
import Connection from './ui/connection';
-let skip_init = false;
-
export function initialize(uri) {
- if (skip_init) {
- skip_init = false;
- return;
- }
store.dispatch(socket_uri(uri));
store.dispatch(socket_update(SOCKET_STATE.CONNECTING));
ws_init(uri, () => {
@@ -53,7 +47,6 @@ render();
if (module.hot) {
module.hot.accept('./ui/main.js', () => {
const NextMain = require('./ui/main.js').default;
- skip_init = true;
render();
});
}
diff --git a/src/ui/connection.js b/src/ui/connection.js
index 7c7e6cb..5c4ab62 100644
--- a/src/ui/connection.js
+++ b/src/ui/connection.js
@@ -19,15 +19,22 @@ class ConnectionOverlay extends Component {
constructor() {
super();
this.connect = this.connect.bind(this);
- const uri = localStorage.getItem("autoconnect");
- const password = localStorage.getItem("password");
- this.state = {
- uri: uri || "ws://127.0.0.1:8412",
- password,
- autoconnect: !!uri
- };
- if (uri) {
- initialize(getURI(this.state.uri, this.state.password));
+ this.componentDidMount = this.componentDidMount.bind(this);
+ }
+
+ componentDidMount() {
+ const { socket } = this.props;
+ if (socket.state === SOCKET_STATE.DISCONNECTED) {
+ const uri = localStorage.getItem("autoconnect");
+ const password = localStorage.getItem("password");
+ this.state = {
+ uri: uri || "ws://127.0.0.1:8412",
+ password,
+ autoconnect: !!uri
+ };
+ if (uri) {
+ initialize(getURI(this.state.uri, this.state.password));
+ }
}
}