mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-02-15 03:35:51 +00:00
don't add new msg if passed max chat length
This commit is contained in:
parent
ad716b5286
commit
f8477c0307
@ -55,7 +55,8 @@ const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
|||||||
|
|
||||||
export const queue = new RequestQueue();
|
export const queue = new RequestQueue();
|
||||||
|
|
||||||
export const chatLimit = 40
|
export const chatLimit = 10
|
||||||
|
export const totalMsgCount = 20
|
||||||
class ChatPage extends LitElement {
|
class ChatPage extends LitElement {
|
||||||
static get properties() {
|
static get properties() {
|
||||||
return {
|
return {
|
||||||
@ -2748,18 +2749,18 @@ class ChatPage extends LitElement {
|
|||||||
|
|
||||||
let list = [...decodeMsgs]
|
let list = [...decodeMsgs]
|
||||||
|
|
||||||
// await new Promise((res, rej) => {
|
await new Promise((res, rej) => {
|
||||||
|
|
||||||
// this.webWorkerSortMessages.postMessage({list});
|
this.webWorkerSortMessages.postMessage({list});
|
||||||
|
|
||||||
// this.webWorkerSortMessages.onmessage = e => {
|
this.webWorkerSortMessages.onmessage = e => {
|
||||||
// console.log('e',e)
|
console.log('e',e)
|
||||||
|
|
||||||
// list = e.data
|
list = e.data
|
||||||
// res()
|
res()
|
||||||
|
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
|
|
||||||
this.messagesRendered = {
|
this.messagesRendered = {
|
||||||
messages: list,
|
messages: list,
|
||||||
@ -2811,18 +2812,18 @@ class ChatPage extends LitElement {
|
|||||||
}));
|
}));
|
||||||
let list = [...decodeMsgs]
|
let list = [...decodeMsgs]
|
||||||
|
|
||||||
// await new Promise((res, rej) => {
|
await new Promise((res, rej) => {
|
||||||
|
|
||||||
// this.webWorkerSortMessages.postMessage({list});
|
this.webWorkerSortMessages.postMessage({list});
|
||||||
|
|
||||||
// this.webWorkerSortMessages.onmessage = e => {
|
this.webWorkerSortMessages.onmessage = e => {
|
||||||
// console.log('e',e)
|
console.log('e',e)
|
||||||
|
|
||||||
// list = e.data
|
list = e.data
|
||||||
// res()
|
res()
|
||||||
|
|
||||||
// }
|
}
|
||||||
// })
|
})
|
||||||
|
|
||||||
this.messagesRendered = {
|
this.messagesRendered = {
|
||||||
messages: list,
|
messages: list,
|
||||||
@ -3173,16 +3174,16 @@ class ChatPage extends LitElement {
|
|||||||
|
|
||||||
this.messagesRendered = {
|
this.messagesRendered = {
|
||||||
messages: [newMessage],
|
messages: [newMessage],
|
||||||
type: 'new',
|
type: 'newComingInAuto',
|
||||||
}
|
}
|
||||||
await this.getUpdateComplete()
|
await this.getUpdateComplete()
|
||||||
|
|
||||||
viewElement.scrollTop = viewElement.scrollHeight
|
// viewElement.scrollTop = viewElement.scrollHeight
|
||||||
} else if (this.isUserDown) {
|
} else if (this.isUserDown) {
|
||||||
|
|
||||||
this.messagesRendered = {
|
this.messagesRendered = {
|
||||||
messages: [newMessage],
|
messages: [newMessage],
|
||||||
type: 'new',
|
type: 'newComingInAuto',
|
||||||
}
|
}
|
||||||
// Append the message and scroll to the bottom if user is down the page
|
// Append the message and scroll to the bottom if user is down the page
|
||||||
// this.messagesRendered = [...this.messagesRendered, newMessage]
|
// this.messagesRendered = [...this.messagesRendered, newMessage]
|
||||||
@ -3193,7 +3194,7 @@ class ChatPage extends LitElement {
|
|||||||
|
|
||||||
this.messagesRendered = {
|
this.messagesRendered = {
|
||||||
messages: [newMessage],
|
messages: [newMessage],
|
||||||
type: 'new',
|
type: 'newComingInAuto',
|
||||||
}
|
}
|
||||||
await this.getUpdateComplete()
|
await this.getUpdateComplete()
|
||||||
|
|
||||||
@ -4202,6 +4203,7 @@ class ChatPage extends LitElement {
|
|||||||
|
|
||||||
const _computePow = async (chatBytes, isForward) => {
|
const _computePow = async (chatBytes, isForward) => {
|
||||||
const difficulty = this.balance < 4 ? 18 : 8
|
const difficulty = this.balance < 4 ? 18 : 8
|
||||||
|
console.log({difficulty})
|
||||||
const path = window.parent.location.origin + '/memory-pow/memory-pow.wasm.full'
|
const path = window.parent.location.origin + '/memory-pow/memory-pow.wasm.full'
|
||||||
|
|
||||||
let worker
|
let worker
|
||||||
|
@ -29,6 +29,7 @@ import '@material/mwc-icon'
|
|||||||
import '@vaadin/icon'
|
import '@vaadin/icon'
|
||||||
import '@vaadin/icons'
|
import '@vaadin/icons'
|
||||||
import '@vaadin/tooltip'
|
import '@vaadin/tooltip'
|
||||||
|
import { chatLimit, totalMsgCount } from './ChatPage.js'
|
||||||
|
|
||||||
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
||||||
|
|
||||||
@ -271,6 +272,7 @@ class ChatScroller extends LitElement {
|
|||||||
this.disableFetching = false
|
this.disableFetching = false
|
||||||
this.isLoadingBefore = false
|
this.isLoadingBefore = false
|
||||||
this.isLoadingAfter = false
|
this.isLoadingAfter = false
|
||||||
|
this.disableAddingNewMessages = false
|
||||||
}
|
}
|
||||||
|
|
||||||
addSeenMessage(val) {
|
addSeenMessage(val) {
|
||||||
@ -347,6 +349,7 @@ class ChatScroller extends LitElement {
|
|||||||
|
|
||||||
|
|
||||||
async addNewMessages(newMessages, type) {
|
async addNewMessages(newMessages, type) {
|
||||||
|
if(this.disableAddingNewMessages && type === 'newComingInAuto') return
|
||||||
let previousScrollTop;
|
let previousScrollTop;
|
||||||
let previousScrollHeight;
|
let previousScrollHeight;
|
||||||
|
|
||||||
@ -373,19 +376,22 @@ class ChatScroller extends LitElement {
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
// Ensure that the total number of individual messages doesn't exceed 80
|
// Ensure that the total number of individual messages doesn't exceed totalMsgCount
|
||||||
let totalMessagesCount = copy.reduce((acc, group) => acc + group.messages.length, 0);
|
let totalMessagesCount = copy.reduce((acc, group) => acc + group.messages.length, 0);
|
||||||
while (totalMessagesCount > 80 && copy.length) {
|
while (totalMessagesCount > totalMsgCount && copy.length) {
|
||||||
|
if(newMessages.length < chatLimit && type !== 'newComingInAuto' && type !== 'initial'){
|
||||||
|
this.disableAddingNewMessages = false
|
||||||
|
}
|
||||||
const firstGroup = copy[0];
|
const firstGroup = copy[0];
|
||||||
if (firstGroup.messages.length <= (totalMessagesCount - 80)) {
|
if (firstGroup.messages.length <= (totalMessagesCount - totalMsgCount)) {
|
||||||
// If removing the whole first group achieves the goal, remove it
|
// If removing the whole first group achieves the goal, remove it
|
||||||
totalMessagesCount -= firstGroup.messages.length;
|
totalMessagesCount -= firstGroup.messages.length;
|
||||||
copy.shift();
|
copy.shift();
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, trim individual messages from the first group
|
// Otherwise, trim individual messages from the first group
|
||||||
const messagesToRemove = totalMessagesCount - 80;
|
const messagesToRemove = totalMessagesCount - totalMsgCount;
|
||||||
firstGroup.messages.splice(0, messagesToRemove);
|
firstGroup.messages.splice(0, messagesToRemove);
|
||||||
totalMessagesCount = 80;
|
totalMessagesCount = totalMsgCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.messagesToRender = copy
|
this.messagesToRender = copy
|
||||||
@ -436,27 +442,24 @@ class ChatScroller extends LitElement {
|
|||||||
this.messagesToRender.unshift(currentMessageGroup);
|
this.messagesToRender.unshift(currentMessageGroup);
|
||||||
}
|
}
|
||||||
|
|
||||||
// Ensure that the total number of individual messages doesn't exceed 80
|
// Ensure that the total number of individual messages doesn't exceed totalMsgCount
|
||||||
let totalMessagesCount = this.messagesToRender.reduce((acc, group) => acc + group.messages.length, 0);
|
let totalMessagesCount = this.messagesToRender.reduce((acc, group) => acc + group.messages.length, 0);
|
||||||
while (totalMessagesCount > 80 && this.messagesToRender.length) {
|
while (totalMessagesCount > totalMsgCount && this.messagesToRender.length) {
|
||||||
|
this.disableAddingNewMessages = true
|
||||||
const lastGroup = this.messagesToRender[this.messagesToRender.length - 1];
|
const lastGroup = this.messagesToRender[this.messagesToRender.length - 1];
|
||||||
if (lastGroup.messages.length <= (totalMessagesCount - 80)) {
|
if (lastGroup.messages.length <= (totalMessagesCount - totalMsgCount)) {
|
||||||
// If removing the whole last group achieves the goal, remove it
|
// If removing the whole last group achieves the goal, remove it
|
||||||
totalMessagesCount -= lastGroup.messages.length;
|
totalMessagesCount -= lastGroup.messages.length;
|
||||||
this.messagesToRender.pop();
|
this.messagesToRender.pop();
|
||||||
} else {
|
} else {
|
||||||
// Otherwise, trim individual messages from the last group
|
// Otherwise, trim individual messages from the last group
|
||||||
const messagesToRemove = totalMessagesCount - 80;
|
const messagesToRemove = totalMessagesCount - totalMsgCount;
|
||||||
lastGroup.messages.splice(-messagesToRemove, messagesToRemove);
|
lastGroup.messages.splice(-messagesToRemove, messagesToRemove);
|
||||||
totalMessagesCount = 80;
|
totalMessagesCount = totalMsgCount;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
this.clearLoaders()
|
this.clearLoaders()
|
||||||
this.requestUpdate(); // await new Promise((res)=> {
|
this.requestUpdate();
|
||||||
// setTimeout(()=> {
|
|
||||||
// res()
|
|
||||||
// }, 5000)
|
|
||||||
// })
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -551,6 +554,7 @@ class ChatScroller extends LitElement {
|
|||||||
|
|
||||||
|
|
||||||
} else if (this.messages.type === 'new') this.addNewMessages(this.messages.messages)
|
} else if (this.messages.type === 'new') this.addNewMessages(this.messages.messages)
|
||||||
|
else if(this.messages.type === 'newComingInAuto') this.addNewMessages(this.messages.messages, 'newComingInAuto')
|
||||||
else if (this.messages.type === 'old') this.prependOldMessages(this.messages.messages)
|
else if (this.messages.type === 'old') this.prependOldMessages(this.messages.messages)
|
||||||
else if (this.messages.type === 'inBetween') this.newListMessages(this.messages.messages, this.messages.signature)
|
else if (this.messages.type === 'inBetween') this.newListMessages(this.messages.messages, this.messages.signature)
|
||||||
else if (this.messages.type === 'update') this.replaceMessagesWithUpdateByArray(this.messages.messages)
|
else if (this.messages.type === 'update') this.replaceMessagesWithUpdateByArray(this.messages.messages)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user