-
Notifications
You must be signed in to change notification settings - Fork 10.1k
/
roomExit.js
42 lines (40 loc) · 1.14 KB
/
roomExit.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
/* globals currentTracker */
import { Blaze } from 'meteor/blaze';
import { BlazeLayout } from 'meteor/kadira:blaze-layout';
this.roomExit = function() {
// 7370 - Close flex-tab when opening a room on mobile UI
if (window.matchMedia('(max-width: 500px)').matches) {
const flex = document.querySelector('.flex-tab');
if (flex) {
const templateData = Blaze.getData(flex);
templateData && templateData.tabBar && templateData.tabBar.close();
}
}
RocketChat.callbacks.run('roomExit');
BlazeLayout.render('main', {
center: 'none',
});
if (typeof currentTracker !== 'undefined') {
currentTracker.stop();
}
const mainNode = document.querySelector('.main-content');
if (mainNode == null) {
return;
}
return [...mainNode.children].forEach((child) => {
if (child == null) {
return;
}
if (child.classList.contains('room-container')) {
const wrapper = child.querySelector('.messages-box > .wrapper');
if (wrapper) {
if (wrapper.scrollTop >= wrapper.scrollHeight - wrapper.clientHeight) {
child.oldScrollTop = 10e10;
} else {
child.oldScrollTop = wrapper.scrollTop;
}
}
}
mainNode.removeChild(child);
});
};