hubl/src/scripts/firefox-scroll.js

60 lines
1.9 KiB
JavaScript
Raw Normal View History

2020-10-14 21:40:08 +00:00
document.addEventListener("DOMContentLoaded", () => {
2020-10-15 14:16:27 +00:00
const resizeChat = () => {
2020-11-30 18:04:50 +00:00
let isMobile = window.innerHeight < 993;
2020-10-15 14:16:27 +00:00
let chatBox = Array.from(document.querySelectorAll("solid-xmpp-chat"))
.map((el) => el.shadowRoot ? el.shadowRoot.getElementById("conversejs") : false)
.filter((el) => el)
.pop();
if (chatBox) {
let chatTextArea = chatBox.querySelector(".message-form-container");
let ischatTextArea = setInterval(() => {
chatTextArea = chatBox.querySelector(".message-form-container");
if (chatTextArea) {
clearInterval(ischatTextArea);
if (
chatBox.getBoundingClientRect().height -
chatTextArea.getBoundingClientRect().height !=
chatTextArea.offsetTop
) {
let viewportChat = Array.from(
document.querySelectorAll("#viewport .chat-view")
);
2020-11-30 17:10:09 +00:00
let headerOffset = document.querySelector('#header').offsetHeight;
let intermediateOffset = Array.from(document.querySelectorAll(".content-box__header")).filter(el=>el.offsetParent!==null?el:null)[0].offsetHeight;
2020-10-15 14:16:27 +00:00
viewportChat.forEach(
2020-11-30 18:04:50 +00:00
(c) => (c.style.height = isMobile ? "calc(100vh - "+String(headerOffset+intermediateOffset)+"px - 57px)" : "calc(100vh - "+String(headerOffset+intermediateOffset)+"px)")
2020-10-15 14:16:27 +00:00
);
}
}
}, 15);
}
2020-10-14 21:40:08 +00:00
};
2020-10-15 14:16:27 +00:00
resizeChat();
2020-10-14 21:40:08 +00:00
let isbody = setInterval(() => {
if (document.body) {
clearInterval(isbody);
2020-10-15 14:16:27 +00:00
resizeChat();
2020-10-14 21:40:08 +00:00
}
2020-11-30 17:10:09 +00:00
}, 50);
2020-10-14 21:40:08 +00:00
window.addEventListener("load", () => {
setTimeout(() => {
2020-10-15 14:16:27 +00:00
resizeChat();
}, 0);
});
2020-11-30 17:10:09 +00:00
let windowResizing;
2020-10-15 14:16:27 +00:00
window.addEventListener("resize", () => {
2020-11-30 17:10:09 +00:00
windowResizing = setTimeout(() => {
clearInterval(windowResizing);
2020-10-15 14:16:27 +00:00
resizeChat();
2020-11-30 17:10:09 +00:00
}, 50);
2020-10-15 14:16:27 +00:00
});
document.addEventListener("navigate", () => {
setTimeout(() => {
resizeChat();
2020-10-14 21:40:08 +00:00
}, 0);
});
});