Scroll infinite.
This commit is contained in:
parent
8c33bc63d6
commit
477ca5917a
@ -55,14 +55,14 @@ class ChannelMessageService(BaseService):
|
||||
results = []
|
||||
offset = page * page_size
|
||||
try:
|
||||
if not timestamp:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid ORDER BY created_at DESC LIMIT :page_size OFFSET :offset",dict(channel_uid=channel_uid, page_size=page_size, offset=offset)):
|
||||
if timestamp:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid AND created_at < :timestamp ORDER BY created_at DESC LIMIT :page_size OFFSET :offset",dict(channel_uid=channel_uid, page_size=page_size, offset=offset, timestamp=timestamp)):
|
||||
results.append(model)
|
||||
elif page >= 0:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid WHERE created_at > :timestamp ORDER BY created_at DESC LIMIT :page_size OFFSET :offset",dict(channel_uid=channel_uid, page_size=page_size, offset=offset,timestamp=timestamp )):
|
||||
elif page > 0:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid WHERE created_at < :timestamp ORDER BY created_at DESC LIMIT :page_size",dict(channel_uid=channel_uid, page_size=page_size, offset=offset,timestamp=timestamp )):
|
||||
results.append(model)
|
||||
else:
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid WHERE created_at < :timestamp ORDER BY created_at DESC LIMIT :page_size OFFSET :offset",dict(channel_uid=channel_uid, page_size=page_size, offset=offset,timestamp=timestamp )):
|
||||
async for model in self.query("SELECT * FROM channel_message WHERE channel_uid=:channel_uid ORDER BY created_at DESC LIMIT :page_size OFFSET :offset",dict(channel_uid=channel_uid, page_size=page_size, offset=offset)):
|
||||
results.append(model)
|
||||
|
||||
except:
|
||||
|
@ -55,6 +55,32 @@
|
||||
rect.right <= (window.innerWidth || document.documentElement.clientWidth)
|
||||
);
|
||||
}
|
||||
|
||||
const messagesContainer = document.querySelector(".chat-messages");
|
||||
async function loadExtra() {
|
||||
|
||||
const fourthMessage = messagesContainer.querySelector(".chat-messages :nth-child(4)");
|
||||
if(!fourthMessage){
|
||||
return
|
||||
}
|
||||
const firstMessage = messagesContainer.querySelector(".message:first-child");
|
||||
if(fourthMessage.dataset.seen){
|
||||
return
|
||||
}
|
||||
|
||||
if(isElementVisible(fourthMessage)){
|
||||
fourthMessage.dataset.seen = true
|
||||
console.info(channelUid, fourthMessage.dataset.created_at)
|
||||
const messages = await app.rpc.get_messages(channelUid, 1, fourthMessage.dataset.created_at);
|
||||
messages.forEach((message) => {
|
||||
firstMessage.insertAdjacentHTML("beforebegin", message.html);
|
||||
})
|
||||
console.info(messages)
|
||||
}
|
||||
}
|
||||
messagesContainer.addEventListener("scroll",()=>{
|
||||
loadExtra()
|
||||
});
|
||||
function updateLayout(doScrollDown) {
|
||||
const messagesContainer = document.querySelector(".chat-messages");
|
||||
//messagesContainer.scrollTop = messagesContainer.scrollHeight + 1000;
|
||||
|
Loading…
Reference in New Issue
Block a user