prevent premature subscription
This commit is contained in:
@@ -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(() => {
|
||||
|
||||
@@ -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}
|
||||
|
||||
Reference in New Issue
Block a user