Fix room load on first hit

pull/7687/head
Diego Sampaio 8 years ago
parent fdb5f550b0
commit 6fd2b500cf
No known key found for this signature in database
GPG Key ID: E060152B30502562
  1. 4
      packages/rocketchat-ui-master/client/main.js
  2. 1
      packages/rocketchat-ui-master/package.js
  3. 29
      packages/rocketchat-ui/client/lib/RoomManager.js
  4. 1
      packages/rocketchat-ui/package.js

@ -105,6 +105,7 @@ Template.body.onRendered(function() {
}
});
RocketChat.mainReady = new ReactiveVar(false);
Template.main.helpers({
siteName() {
return RocketChat.settings.get('Site_Name');
@ -132,6 +133,9 @@ Template.main.helpers({
const settingsReady = RocketChat.settings.cachedCollection.ready.get();
const ready = (Meteor.userId() == null) || (routerReady && subscriptionsReady && settingsReady);
RocketChat.CachedCollectionManager.syncEnabled = ready;
Meteor.defer(() => {
RocketChat.mainReady.set(ready);
});
return ready;
},
hasUsername() {

@ -20,6 +20,7 @@ Package.onUse(function(api) {
'ecmascript',
'templating',
'underscore',
'reactive-var',
'rocketchat:lib',
'meteorhacks:inject-initial'
]);

@ -12,7 +12,7 @@ const RoomManager = new function() {
Object.keys(openedRooms).forEach(typeName => {
const record = openedRooms[typeName];
if (record.active !== true || record.ready === true) { return; }
const ready = CachedChatRoom.ready.get() && CachedChatSubscription.ready.get() === true;
const ready = CachedChatRoom.ready.get() && RocketChat.mainReady.get();
if (ready !== true) { return; }
const user = Meteor.user();
@ -256,18 +256,19 @@ Tracker.autorun(function() {
return connectionWasOnline = connected;
});
// Reload rooms after login
let currentUsername = undefined;
Tracker.autorun(() => {
const user = Meteor.user();
if ((currentUsername === undefined) && ((user != null ? user.username : undefined) != null)) {
currentUsername = user.username;
RoomManager.closeAllRooms();
return FlowRouter._current.route.callAction(FlowRouter._current);
}
});
Meteor.startup(() => {
// Reload rooms after login
let currentUsername = undefined;
Tracker.autorun(() => {
const user = Meteor.user();
if ((currentUsername === undefined) && ((user != null ? user.username : undefined) != null)) {
currentUsername = user.username;
RoomManager.closeAllRooms();
FlowRouter.reload();
}
});
Meteor.startup(() =>
ChatMessage.find().observe({
removed(record) {
if (RoomManager.getOpenedRoomByRid(record.rid) != null) {
@ -282,8 +283,8 @@ Meteor.startup(() =>
}
}
}
})
);
});
});
const onDeleteMessageStream = msg => ChatMessage.remove({_id: msg._id});

@ -22,6 +22,7 @@ Package.onUse(function(api) {
'templating',
'underscore',
'rocketchat:lib',
'rocketchat:ui-master',
'raix:push',
'raix:ui-dropped-event'
]);

Loading…
Cancel
Save