|
|
|
@ -2514,7 +2514,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
if (this.isReceipient) { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=${limit}&reverse=true&before=${before}&after=${after}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=${limit}&reverse=true&before=${before}&after=${after}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const decodeMsgs = getInitialMessages.map((eachMessage) => { |
|
|
|
@ -2548,7 +2548,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
} else { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=${limit}&reverse=true&before=${before}&after=${after}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=${limit}&reverse=true&before=${before}&after=${after}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2589,7 +2589,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
if (this.isReceipient) { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=20&reverse=true&before=${scrollElement.messageObj.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=20&reverse=true&before=${scrollElement.messageObj.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const decodeMsgs = getInitialMessages.map((eachMessage) => { |
|
|
|
@ -2622,7 +2622,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
} else { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=20&reverse=true&before=${scrollElement.messageObj.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=20&reverse=true&before=${scrollElement.messageObj.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2660,7 +2660,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
if (this.isReceipient) { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=20&reverse=true&afer=${scrollElement.messageObj.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${this._chatId}&limit=20&reverse=true&afer=${scrollElement.messageObj.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
const decodeMsgs = getInitialMessages.map((eachMessage) => { |
|
|
|
@ -2693,7 +2693,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
} else { |
|
|
|
|
const getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=20&reverse=true&after=${scrollElement.messageObj.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?txGroupId=${Number(this._chatId)}&limit=20&reverse=true&after=${scrollElement.messageObj.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2739,8 +2739,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
let _eachMessage = this.decodeMessage(eachMessage) |
|
|
|
|
return _eachMessage |
|
|
|
|
} |
|
|
|
|
}) |
|
|
|
|
|
|
|
|
|
}) |
|
|
|
|
if (isInitial) { |
|
|
|
|
this.chatEditorPlaceholder = await this.renderPlaceholder(); |
|
|
|
|
const replacedMessages = await replaceMessagesEdited({ |
|
|
|
@ -2759,6 +2758,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
// TODO: Determine number of initial messages by screen height...
|
|
|
|
|
this.messagesRendered = this._messages; |
|
|
|
|
this.isLoadingMessages = false; |
|
|
|
|
|
|
|
|
|
setTimeout(() => this.downElementObserver(), 500); |
|
|
|
|
} else { |
|
|
|
|
const replacedMessages = await replaceMessagesEdited({ |
|
|
|
@ -2885,11 +2885,10 @@ class ChatPage extends LitElement {
|
|
|
|
|
if (isReceipientVar === true) { |
|
|
|
|
// direct chat
|
|
|
|
|
if (encodedMessageObj.isEncrypted === true && _publicKeyVar.hasPubKey === true && encodedMessageObj.data) { |
|
|
|
|
let decodedMessage = window.parent.decryptChatMessage(encodedMessageObj.data, window.parent.reduxStore.getState().app.selectedAddress.keyPair.privateKey, _publicKeyVar.key, encodedMessageObj.reference); |
|
|
|
|
let decodedMessage = window.parent.decryptChatMessageBase64(encodedMessageObj.data, window.parent.reduxStore.getState().app.selectedAddress.keyPair.privateKey, _publicKeyVar.key, encodedMessageObj.reference); |
|
|
|
|
decodedMessageObj = { ...encodedMessageObj, decodedMessage }; |
|
|
|
|
} else if (encodedMessageObj.isEncrypted === false && encodedMessageObj.data) { |
|
|
|
|
let bytesArray = window.parent.Base58.decode(encodedMessageObj.data); |
|
|
|
|
let decodedMessage = new TextDecoder('utf-8').decode(bytesArray); |
|
|
|
|
let decodedMessage = window.parent.Base64.decode(encodedMessageObj.data); |
|
|
|
|
decodedMessageObj = { ...encodedMessageObj, decodedMessage }; |
|
|
|
|
} else { |
|
|
|
|
decodedMessageObj = { ...encodedMessageObj, decodedMessage: "Cannot Decrypt Message!" }; |
|
|
|
@ -2897,8 +2896,7 @@ class ChatPage extends LitElement {
|
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
// group chat
|
|
|
|
|
let bytesArray = window.parent.Base58.decode(encodedMessageObj.data); |
|
|
|
|
let decodedMessage = new TextDecoder('utf-8').decode(bytesArray); |
|
|
|
|
let decodedMessage = window.parent.Base64.decode(encodedMessageObj.data); |
|
|
|
|
decodedMessageObj = { ...encodedMessageObj, decodedMessage }; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -2919,11 +2917,11 @@ class ChatPage extends LitElement {
|
|
|
|
|
|
|
|
|
|
if (window.parent.location.protocol === "https:") { |
|
|
|
|
|
|
|
|
|
directSocketLink = `wss://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}`; |
|
|
|
|
directSocketLink = `wss://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&encoding=BASE64`; |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
// Fallback to http
|
|
|
|
|
directSocketLink = `ws://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}`; |
|
|
|
|
directSocketLink = `ws://${nodeUrl}/websockets/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&encoding=BASE64`; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.webSocket = new WebSocket(directSocketLink); |
|
|
|
@ -2942,13 +2940,13 @@ class ChatPage extends LitElement {
|
|
|
|
|
const lastMessage = cachedData[cachedData.length - 1] |
|
|
|
|
const newMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=20&reverse=true&after=${lastMessage.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=20&reverse=true&after=${lastMessage.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
getInitialMessages = [...cachedData, ...newMessages].slice(-20) |
|
|
|
|
} else { |
|
|
|
|
getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=20&reverse=true&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?involving=${window.parent.reduxStore.getState().app.selectedAddress.address}&involving=${cid}&limit=20&reverse=true&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -2959,9 +2957,14 @@ class ChatPage extends LitElement {
|
|
|
|
|
initial = initial + 1 |
|
|
|
|
|
|
|
|
|
} else { |
|
|
|
|
try { |
|
|
|
|
if(e.data){ |
|
|
|
|
this.processMessages(JSON.parse(e.data), false) |
|
|
|
|
} |
|
|
|
|
} catch (error) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
@ -3009,11 +3012,11 @@ class ChatPage extends LitElement {
|
|
|
|
|
|
|
|
|
|
if (window.parent.location.protocol === "https:") { |
|
|
|
|
|
|
|
|
|
groupSocketLink = `wss://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}`; |
|
|
|
|
groupSocketLink = `wss://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}&encoding=BASE64`; |
|
|
|
|
} else { |
|
|
|
|
|
|
|
|
|
// Fallback to http
|
|
|
|
|
groupSocketLink = `ws://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}`; |
|
|
|
|
groupSocketLink = `ws://${nodeUrl}/websockets/chat/messages?txGroupId=${groupId}&encoding=BASE64`; |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
this.webSocket = new WebSocket(groupSocketLink); |
|
|
|
@ -3037,17 +3040,15 @@ class ChatPage extends LitElement {
|
|
|
|
|
|
|
|
|
|
const newMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?txGroupId=${groupId}&limit=20&reverse=true&after=${lastMessage.timestamp}&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?txGroupId=${groupId}&limit=20&reverse=true&after=${lastMessage.timestamp}&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
getInitialMessages = [...cachedData, ...newMessages].slice(-20) |
|
|
|
|
} else { |
|
|
|
|
getInitialMessages = await parentEpml.request('apiCall', { |
|
|
|
|
type: 'api', |
|
|
|
|
url: `/chat/messages?txGroupId=${groupId}&limit=20&reverse=true&haschatreference=false`, |
|
|
|
|
url: `/chat/messages?txGroupId=${groupId}&limit=20&reverse=true&haschatreference=false&encoding=BASE64`, |
|
|
|
|
}); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -3055,9 +3056,14 @@ class ChatPage extends LitElement {
|
|
|
|
|
|
|
|
|
|
initial = initial + 1 |
|
|
|
|
} else { |
|
|
|
|
if(e.data){ |
|
|
|
|
this.processMessages(JSON.parse(e.data), false) |
|
|
|
|
try { |
|
|
|
|
if (e.data) { |
|
|
|
|
this.processMessages(JSON.parse(e.data), false) |
|
|
|
|
}
|
|
|
|
|
} catch (error) { |
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|