You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
88 lines
2.8 KiB
JavaScript
88 lines
2.8 KiB
JavaScript
|
|
(function() {
|
|
const openChatButton = document.getElementById('openChatContainer');
|
|
const openChatButton2 = document.getElementById('openChatContainer2');
|
|
const chatWidget = document.getElementById('chatWidget');
|
|
const closeChatButton = document.getElementById('closeChatContainer');
|
|
const closeMobileChatButton = document.getElementById('closeMobileChatContainer');
|
|
const conversation = document.getElementById('conversation');
|
|
|
|
const unreadMessages = document.getElementById('unreadMessages');
|
|
const closeNewMesagePopup = document.getElementById('closeNewMesagePopup');
|
|
|
|
function scrollToBottom() {
|
|
conversation.scrollTop = conversation.scrollHeight;
|
|
}
|
|
|
|
function toggleBodyScroll(preventScroll) {
|
|
if (preventScroll) {
|
|
document.body.classList.add('no-scroll');
|
|
} else {
|
|
document.body.classList.remove('no-scroll');
|
|
}
|
|
}
|
|
|
|
function checkScreenSize() {
|
|
if (chatWidget.classList.contains('hidden')) {
|
|
return;
|
|
}
|
|
if (window.innerWidth < 798) {
|
|
toggleBodyScroll(true);
|
|
} else {
|
|
toggleBodyScroll(false);
|
|
}
|
|
}
|
|
|
|
function openChat() {
|
|
isOpen = true;
|
|
chatWidget.classList.remove('hidden');
|
|
openChatButton.classList.add('hidden');
|
|
closeChatButton.classList.remove('hidden');
|
|
if (unreadMessages) {
|
|
unreadMessages.classList.add('hidden');
|
|
}
|
|
osichatSocket.send(JSON.stringify({ 'event_type': 'update_read_messages', 'chat_state': 'open' }));
|
|
scrollToBottom();
|
|
checkScreenSize();
|
|
}
|
|
|
|
function closeChat() {
|
|
isOpen = false;
|
|
chatWidget.classList.add('hidden');
|
|
openChatButton.classList.remove('hidden');
|
|
if (closeChatButton) {
|
|
closeChatButton.classList.add('hidden');
|
|
} else if (closeMobileChatButton) {
|
|
closeMobileChatButton.classList.add('hidden');
|
|
}
|
|
toggleBodyScroll(false);
|
|
}
|
|
|
|
// Attach event listeners
|
|
openChatButton.addEventListener('click', openChat);
|
|
if (openChatButton2) {
|
|
openChatButton2.addEventListener('click', openChat);
|
|
}
|
|
closeChatButton.addEventListener('click', closeChat);
|
|
closeMobileChatButton.addEventListener('click', closeChat);
|
|
window.addEventListener('resize', checkScreenSize);
|
|
|
|
// CSS class to prevent scrolling
|
|
const style = document.createElement('style');
|
|
style.innerHTML = `
|
|
.no-scroll {
|
|
overflow: hidden;
|
|
}
|
|
`;
|
|
document.head.appendChild(style);
|
|
|
|
// To close the unread messages popup
|
|
if (closeNewMesagePopup) {
|
|
closeNewMesagePopup.addEventListener('click', function() {
|
|
if (unreadMessages) {
|
|
unreadMessages.classList.add('hidden')
|
|
}
|
|
});
|
|
}
|
|
})();
|