From eddf43e1337f713b6e9f4ef6e733171f742e76a5 Mon Sep 17 00:00:00 2001 From: Reed Garmsen Date: Mon, 6 Jul 2015 19:02:21 -0700 Subject: Notes to myself --- web/react/utils/async_client.jsx | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) (limited to 'web') diff --git a/web/react/utils/async_client.jsx b/web/react/utils/async_client.jsx index a2a6f8db7..2c6923e53 100644 --- a/web/react/utils/async_client.jsx +++ b/web/react/utils/async_client.jsx @@ -15,7 +15,12 @@ var ActionTypes = Constants.ActionTypes; var callTracker = {}; var dispatchError = function(err, method) { - if (err.message === "There appears to be a problem with your internet connection") return; + if (err.message === "There appears to be a problem with your internet connection") { + + //Need to communicate this fact to textbox and cause it to change color + + return; + } AppDispatcher.handleServerAction({ type: ActionTypes.RECIEVED_ERROR, -- cgit v1.2.3-1-g7c22 From 80f9ebadeff1f96fe2235e35cc5a1f80afd6dd58 Mon Sep 17 00:00:00 2001 From: Reed Garmsen Date: Tue, 7 Jul 2015 11:22:58 -0700 Subject: Added errorchange listener to textbox that detects if inet is not connected. Still do not have reliable way of checking if inet has reconnected --- web/react/components/error_bar.jsx | 2 +- web/react/components/textbox.jsx | 35 +++++++++++++++++++++++++++++++-- web/react/utils/async_client.jsx | 7 ------- web/sass-files/sass/partials/_post.scss | 4 ++++ 4 files changed, 38 insertions(+), 10 deletions(-) (limited to 'web') diff --git a/web/react/components/error_bar.jsx b/web/react/components/error_bar.jsx index f23dc060e..d9d91ef51 100644 --- a/web/react/components/error_bar.jsx +++ b/web/react/components/error_bar.jsx @@ -9,7 +9,7 @@ var ActionTypes = Constants.ActionTypes; function getStateFromStores() { var error = ErrorStore.getLastError(); - if (error) { + if (error && error.message !== "There appears to be a problem with your internet connection") { return { message: error.message }; } else { return { message: null }; diff --git a/web/react/components/textbox.jsx b/web/react/components/textbox.jsx index 6b746aa78..227d61e3f 100644 --- a/web/react/components/textbox.jsx +++ b/web/react/components/textbox.jsx @@ -8,11 +8,22 @@ var SocketStore = require('../stores/socket_store.jsx'); var MsgTyping = require('./msg_typing.jsx'); var MentionList = require('./mention_list.jsx'); var CommandList = require('./command_list.jsx'); +var ErrorStore = require('../stores/error_store.jsx'); var utils = require('../utils/utils.jsx'); var Constants = require('../utils/constants.jsx'); var ActionTypes = Constants.ActionTypes; +function getStateFromStores() { + var error = ErrorStore.getLastError(); + + if (error) { + return { message: error.message }; + } else { + return { message: null }; + } +} + module.exports = React.createClass({ caret: -1, addedMention: false, @@ -20,6 +31,8 @@ module.exports = React.createClass({ mentions: [], componentDidMount: function() { PostStore.addAddMentionListener(this._onChange); + ErrorStore.addChangeListener(this._onError); + //SocketStore.addChangeListener(this._onSocketChange); this.resize(); this.processMentions(); @@ -27,11 +40,29 @@ module.exports = React.createClass({ }, componentWillUnmount: function() { PostStore.removeAddMentionListener(this._onChange); + ErrorStore.removeChangeListener(this._onError); }, _onChange: function(id, username) { if (id !== this.props.id) return; this.addMention(username); }, + _onError: function() { + var errorState = getStateFromStores(); + + if (errorState.message === "There appears to be a problem with your internet connection") { + this.setState({ connection: " bad-connection" }); + } + else { + console.log("Logged the error correctly"); + this.setState({ connection: "" }); + } + }, + /*_onSocketChange: function() { + if (SocketStore.isSocketClosed()) + this.setState({ connection: " bad-connection" }); + else + this.setState({ connection: "" }); + },*/ componentDidUpdate: function() { if (this.caret >= 0) { utils.setCaretPosition(this.refs.message.getDOMNode(), this.caret) @@ -57,7 +88,7 @@ module.exports = React.createClass({ this.resize(); }, getInitialState: function() { - return { mentionText: '-1', mentions: [] }; + return { mentionText: '-1', mentions: [], connection: "" }; }, updateMentionTab: function(mentionText, excludeList) { var self = this; @@ -287,7 +318,7 @@ module.exports = React.createClass({
-