prevent premature subscription

This commit is contained in:
or-else
2019-02-28 15:28:54 +03:00
parent 0f13f2edb9
commit d13b24263e
6 changed files with 26 additions and 8 deletions
+4 -3
View File
@@ -111,8 +111,8 @@ class MessagesView extends React.Component {
}
}
if (topic && !topic.isSubscribed() && this.props.tinode.isAuthenticated() &&
((!prevProps.connected && this.props.connected) || (this.state.topic != prevState.topic))) {
if (topic && !topic.isSubscribed() && this.props.ready &&
((this.state.topic != prevState.topic) || !prevProps.ready)) {
// Don't request the tags. They are useless unless the user
// is the owner and is editing the topic.
let getQuery = topic.startMetaQuery().withLaterDesc().withLaterSub();
@@ -356,7 +356,8 @@ class MessagesView extends React.Component {
newState.scrollPosition = 0;
}
// Aknowledge messages except own messages.
// Aknowledge messages except own messages. They are
// automatically assumed to be read and recived.
const status = topic.msgStatus(msg);
if (status >= Tinode.MESSAGE_STATUS_SENT && msg.from != this.props.myUserId) {
this.props.readTimerHandler(() => {
+9
View File
@@ -113,6 +113,8 @@ class TinodeWeb extends React.Component {
return {
connected: false,
// Connected and subscribed to 'me'
ready: false,
transport: settings.transport || null,
serverAddress: settings.serverAddress || detectServerAddress(),
serverVersion: "no connection",
@@ -410,6 +412,7 @@ class TinodeWeb extends React.Component {
handleDisconnect(err) {
this.setState({
connected: false,
ready: false,
topicSelectedOnline: false,
dialogSelected: null,
errorText: err && err.message ? err.message : "Disconnected",
@@ -594,6 +597,11 @@ class TinodeWeb extends React.Component {
const newState = {
chatList: []
};
if (!this.state.ready) {
newState.ready = true;
}
this.tinode.getMeTopic().contacts((c) => {
newState.chatList.push(c);
if (this.state.topicSelected == c.topic) {
@@ -1265,6 +1273,7 @@ class TinodeWeb extends React.Component {
<MessagesView
tinode={this.tinode}
connected={this.state.connected}
ready={this.state.ready}
online={this.state.topicSelectedOnline}
acs={this.state.topicSelectedAcs}
displayMobile={this.state.displayMobile}
+10 -2
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
+1 -1
View File
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long