let scrollStartSave = 0; let executaScroll = false; /* Dependendo do tamanho a tela, estava executando o monitoringscroll antes do usuário realmente usar o scroll. Esta variável foi criada para isso */ document.addEventListener('DOMContentLoaded', e => { const currentPage = window.location.href; const openChat = localStorage.getItem('openChat'); if (openChat) { const { chatId, chatType } = JSON.parse(openChat); changeChat(chatId, chatType, true); // abre no chat que existe notificação messageViewed(chatId, chatType); } else { const chatId = SESSION_DATA.id; const chatType = 'user'; changeChat(chatId, chatType); } monitoringScroll(); verificaMensagensNovas(); }) function monitoringScroll() { const chatDiv = document.querySelector('.body-message'); let calculateLoad; $('.body-message').scroll(e => { if (executaScroll) { const currentScroll = e.target.scrollTop; if (currentScroll === 0 && currentScroll <= scrollStartSave) return; if (chatDiv.scrollHeight < 2000) { calculateLoad = (chatDiv.scrollHeight * 0.32); } else if (chatDiv.scrollHeight < 5000) { calculateLoad = (chatDiv.scrollHeight * 0.25); } else if (chatDiv.scrollHeight < 6000) { calculateLoad = (chatDiv.scrollHeight * 0.20); } else if (chatDiv.scrollHeight < 8000) { calculateLoad = (chatDiv.scrollHeight * 0.15); } else { calculateLoad = 3000; } if (currentScroll == (chatDiv.scrollHeight - chatDiv.clientHeight)) hiddenNewMensagemInChat(); if (currentScroll < calculateLoad && DEFAULT_CONFIG.allow_scroll) { DEFAULT_CONFIG.allow_scroll = false; DEFAULT_CONFIG.limit_scroll += 1; const dataId = $('.chatSelected').data('id'); const dataType = $('.chatSelected').data('type'); // Salva a posição do scroll antes de carregar as mensagens scrollStartSave = currentScroll; loadMessagesScroll(dataId, dataType, (position) => { // Restaura a posição do scroll após o carregamento das mensagens // if (position) chatDiv.scrollTop = scrollStartSave; DEFAULT_CONFIG.allow_scroll = true; }); } } else { executaScroll = true; } }); } $(document).ready(function () { setTimeout(() => { $('*[a-link]').on('click', function () { var page = $(this).attr('a-link'); SetLS('page', page); OpenPage(URL_BASE + page); }); }, 500); });