Scroll infinite.
This commit is contained in:
		
							parent
							
								
									3ee7c6d802
								
							
						
					
					
						commit
						95a8a45842
					
				| @ -56,25 +56,40 @@ | ||||
|         ); | ||||
|     } | ||||
|      | ||||
| 
 | ||||
|     const messagesContainer = document.querySelector(".chat-messages"); | ||||
|     function isScrolledPastHalf() { | ||||
|         let scrollTop = messagesContainer.scrollTop; | ||||
|         let scrollableHeight = messagesContainer.scrollHeight - messagesContainer.clientHeight; | ||||
| 
 | ||||
|         if (scrollTop < scrollableHeight / 2) { | ||||
|             return false; | ||||
|         } | ||||
|         return true; | ||||
|     } | ||||
|     let isLoadingExtra = false; | ||||
|     async function loadExtra() { | ||||
|      | ||||
|         const offsetMessage = messagesContainer.querySelector(".chat-messages :nth-child(10)"); | ||||
|         if(!offsetMessage){ | ||||
|         //const offsetMessage = messagesContainer.querySelector(".chat-messages :nth-child(10)"); | ||||
|         //if(!offsetMessage){ | ||||
|         //    return | ||||
|         //} | ||||
|         const firstMessage = messagesContainer.querySelector(".message:first-child"); | ||||
|         //if(offsetMessage.dataset.seen){ | ||||
|         //    return  | ||||
|         //} | ||||
|         if(isLoadingExtra){ | ||||
|             return  | ||||
|         } | ||||
|         const firstMessage = messagesContainer.querySelector(".message:first-child"); | ||||
|         if(offsetMessage.dataset.seen){ | ||||
|             return  | ||||
|         if(isScrolledPastHalf()){ | ||||
|             isLoadingExtra = true | ||||
|          | ||||
|         } | ||||
|              | ||||
|         if(isElementVisible(offsetMessage)){ | ||||
|             offsetMessage.dataset.seen = true | ||||
|             const messages = await app.rpc.getMessages(channelUid, 1, offsetMessage.dataset.created_at); | ||||
|             messages.forEach((message) => { | ||||
|                 firstMessage.insertAdjacentHTML("beforebegin", message.html); | ||||
|             }) | ||||
|         } | ||||
|         isLoadingExtra = false; | ||||
|     } | ||||
|     messagesContainer.addEventListener("scroll",()=>{ | ||||
|         loadExtra() | ||||
|  | ||||
		Loading…
	
		Reference in New Issue
	
	Block a user