mirror of
https://github.com/Qortal/qortal-ui.git
synced 2025-04-01 18:15:53 +00:00
Merge remote-tracking branch 'justin/feature/implement-UI-edit-reply-messages' into feature/implement-logic-edit-reply-messages
This commit is contained in:
commit
9d9f6602bf
@ -366,7 +366,6 @@ class ChatModals extends LitElement {
|
|||||||
<textarea class='textarea' @keydown=${(e) => this._textArea(e)} ?disabled=${this.isLoading} id='messageBox' placeholder='${translate('welcomepage.wcchange5')}' rows='1'></textarea>
|
<textarea class='textarea' @keydown=${(e) => this._textArea(e)} ?disabled=${this.isLoading} id='messageBox' placeholder='${translate('welcomepage.wcchange5')}' rows='1'></textarea>
|
||||||
</p>
|
</p>
|
||||||
<mwc-button ?disabled='${this.isLoading}' slot='primaryAction' @click=${() => {
|
<mwc-button ?disabled='${this.isLoading}' slot='primaryAction' @click=${() => {
|
||||||
console.log("here500");
|
|
||||||
this._sendMessage();
|
this._sendMessage();
|
||||||
}
|
}
|
||||||
}>${translate('welcomepage.wcchange6')}
|
}>${translate('welcomepage.wcchange6')}
|
||||||
|
@ -54,8 +54,9 @@ class ChatPage extends LitElement {
|
|||||||
_initialMessages: { type: Array },
|
_initialMessages: { type: Array },
|
||||||
isUserDown: { type: Boolean },
|
isUserDown: { type: Boolean },
|
||||||
isPasteMenuOpen: { type: Boolean },
|
isPasteMenuOpen: { type: Boolean },
|
||||||
showNewMesssageBar: { attribute: false },
|
showNewMessageBar: { attribute: false },
|
||||||
hideNewMesssageBar: { attribute: false },
|
hideNewMessageBar: { attribute: false },
|
||||||
|
setOpenPrivateMessage: { attribute: false },
|
||||||
chatEditorPlaceholder: { type: String },
|
chatEditorPlaceholder: { type: String },
|
||||||
messagesRendered: { type: Array },
|
messagesRendered: { type: Array },
|
||||||
repliedToMessageObj: { type: Object },
|
repliedToMessageObj: { type: Object },
|
||||||
@ -75,6 +76,8 @@ class ChatPage extends LitElement {
|
|||||||
openForwardOpen: {type: Boolean },
|
openForwardOpen: {type: Boolean },
|
||||||
userFound: { type: Array },
|
userFound: { type: Array },
|
||||||
userFoundModalOpen: { type: Boolean },
|
userFoundModalOpen: { type: Boolean },
|
||||||
|
webWorker: { type: Object },
|
||||||
|
webWorkerImage: { type: Object }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -693,10 +696,12 @@ class ChatPage extends LitElement {
|
|||||||
name: "",
|
name: "",
|
||||||
selected: false
|
selected: false
|
||||||
}
|
}
|
||||||
|
this.webWorker = null;
|
||||||
|
this.webWorkerImage = null;
|
||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
console.log(25, 'here');
|
console.log(5, 'Chat Page Here');
|
||||||
return html`
|
return html`
|
||||||
<div class="chat-container">
|
<div class="chat-container">
|
||||||
<div>
|
<div>
|
||||||
@ -983,6 +988,18 @@ class ChatPage extends LitElement {
|
|||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
connectedCallback() {
|
||||||
|
super.connectedCallback();
|
||||||
|
this.webWorker = new WebWorker();
|
||||||
|
this.webWorkerImage = new WebWorkerImage();
|
||||||
|
}
|
||||||
|
|
||||||
|
disconnectedCallback() {
|
||||||
|
super.disconnectedCallback();
|
||||||
|
this.webWorker.terminate();
|
||||||
|
this.webWorkerImage.terminate();
|
||||||
|
}
|
||||||
|
|
||||||
async userSearch() {
|
async userSearch() {
|
||||||
const nameValue = this.shadowRoot.getElementById('sendTo').value;
|
const nameValue = this.shadowRoot.getElementById('sendTo').value;
|
||||||
if (!nameValue) {
|
if (!nameValue) {
|
||||||
@ -1175,9 +1192,6 @@ class ChatPage extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
if (changedProperties && changedProperties.has('forwardActiveChatHeadUrl')) {
|
|
||||||
console.log(this.forwardActiveChatHeadUrl, "forwardActiveChatHeadUrl here");
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
async renderPlaceholder() {
|
async renderPlaceholder() {
|
||||||
@ -1224,6 +1238,7 @@ class ChatPage extends LitElement {
|
|||||||
?isLoadingMessages=${this.isLoadingOldMessages}
|
?isLoadingMessages=${this.isLoadingOldMessages}
|
||||||
.setIsLoadingMessages=${(val) => this.setIsLoadingMessages(val)}
|
.setIsLoadingMessages=${(val) => this.setIsLoadingMessages(val)}
|
||||||
.setForwardProperties=${(forwardedMessage)=> this.setForwardProperties(forwardedMessage)}
|
.setForwardProperties=${(forwardedMessage)=> this.setForwardProperties(forwardedMessage)}
|
||||||
|
.setOpenPrivateMessage=${(val) => this.setOpenPrivateMessage(val)}
|
||||||
>
|
>
|
||||||
</chat-scroller>
|
</chat-scroller>
|
||||||
`
|
`
|
||||||
@ -1435,7 +1450,7 @@ class ChatPage extends LitElement {
|
|||||||
this.messagesRendered = [...this.messagesRendered, newMessage]
|
this.messagesRendered = [...this.messagesRendered, newMessage]
|
||||||
await this.getUpdateComplete();
|
await this.getUpdateComplete();
|
||||||
|
|
||||||
this.showNewMesssageBar();
|
this.showNewMessageBar();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1673,7 +1688,6 @@ class ChatPage extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
async _sendMessage(outSideMsg) {
|
async _sendMessage(outSideMsg) {
|
||||||
|
|
||||||
if(this.isReceipient){
|
if(this.isReceipient){
|
||||||
let hasPublicKey = true
|
let hasPublicKey = true
|
||||||
if(!this._publicKey.hasPubKey){
|
if(!this._publicKey.hasPubKey){
|
||||||
@ -1714,7 +1728,7 @@ class ChatPage extends LitElement {
|
|||||||
// create new var called repliedToData and use that to modify the UI
|
// create new var called repliedToData and use that to modify the UI
|
||||||
// find specific object property in local
|
// find specific object property in local
|
||||||
let typeMessage = 'regular';
|
let typeMessage = 'regular';
|
||||||
|
let workerImage;
|
||||||
this.isLoading = true;
|
this.isLoading = true;
|
||||||
this.chatEditor.disable();
|
this.chatEditor.disable();
|
||||||
this.chatEditorNewChat.disable()
|
this.chatEditorNewChat.disable()
|
||||||
@ -1748,6 +1762,12 @@ class ChatPage extends LitElement {
|
|||||||
let compressedFile = ''
|
let compressedFile = ''
|
||||||
var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==";
|
var str = "iVBORw0KGgoAAAANSUhEUgAAAsAAAAGMAQMAAADuk4YmAAAAA1BMVEX///+nxBvIAAAAAXRSTlMAQObYZgAAADlJREFUeF7twDEBAAAAwiD7p7bGDlgYAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAwAGJrAABgPqdWQAAAABJRU5ErkJggg==";
|
||||||
|
|
||||||
|
if (this.webWorkerImage) {
|
||||||
|
workerImage = this.webWorkerImage;
|
||||||
|
} else {
|
||||||
|
this.webWorkerImage = new WebWorkerImage();
|
||||||
|
}
|
||||||
|
|
||||||
const b64toBlob = (b64Data, contentType='', sliceSize=512) => {
|
const b64toBlob = (b64Data, contentType='', sliceSize=512) => {
|
||||||
const byteCharacters = atob(b64Data);
|
const byteCharacters = atob(b64Data);
|
||||||
const byteArrays = [];
|
const byteArrays = [];
|
||||||
@ -1795,7 +1815,7 @@ class ChatPage extends LitElement {
|
|||||||
metaData: undefined,
|
metaData: undefined,
|
||||||
uploadType: 'file',
|
uploadType: 'file',
|
||||||
selectedAddress: this.selectedAddress,
|
selectedAddress: this.selectedAddress,
|
||||||
worker: new WebWorkerImage()
|
worker: workerImage
|
||||||
})
|
})
|
||||||
this.isDeletingImage = false
|
this.isDeletingImage = false
|
||||||
} catch (error) {
|
} catch (error) {
|
||||||
@ -1839,6 +1859,13 @@ class ChatPage extends LitElement {
|
|||||||
this.chatEditorNewChat.enable()
|
this.chatEditorNewChat.enable()
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
if (this.webWorkerImage) {
|
||||||
|
workerImage = this.webWorkerImage;
|
||||||
|
} else {
|
||||||
|
this.webWorkerImage = new WebWorkerImage();
|
||||||
|
}
|
||||||
|
|
||||||
const image = this.imageFile
|
const image = this.imageFile
|
||||||
const id = this.uid();
|
const id = this.uid();
|
||||||
const identifier = `qchat_${id}`;
|
const identifier = `qchat_${id}`;
|
||||||
@ -1878,7 +1905,7 @@ class ChatPage extends LitElement {
|
|||||||
metaData: undefined,
|
metaData: undefined,
|
||||||
uploadType: 'file',
|
uploadType: 'file',
|
||||||
selectedAddress: this.selectedAddress,
|
selectedAddress: this.selectedAddress,
|
||||||
worker: new WebWorkerImage()
|
worker: workerImage
|
||||||
});
|
});
|
||||||
this.isUploadingImage = false;
|
this.isUploadingImage = false;
|
||||||
this.imageFile = null;
|
this.imageFile = null;
|
||||||
@ -2162,21 +2189,29 @@ class ChatPage extends LitElement {
|
|||||||
|
|
||||||
const _computePow = async (chatBytes, isForward) => {
|
const _computePow = async (chatBytes, isForward) => {
|
||||||
const difficulty = this.balance === 0 ? 12 : 8;
|
const difficulty = this.balance === 0 ? 12 : 8;
|
||||||
|
|
||||||
const path = window.parent.location.origin + '/memory-pow/memory-pow.wasm.full'
|
const path = window.parent.location.origin + '/memory-pow/memory-pow.wasm.full'
|
||||||
const worker = new WebWorker();
|
|
||||||
let nonce = null
|
let worker;
|
||||||
let chatBytesArray = null
|
|
||||||
|
if (this.webWorker) {
|
||||||
|
worker = this.webWorker;
|
||||||
|
} else {
|
||||||
|
this.webWorker = new WebWorker();
|
||||||
|
}
|
||||||
|
|
||||||
|
let nonce = null;
|
||||||
|
|
||||||
|
let chatBytesArray = null;
|
||||||
|
|
||||||
await new Promise((res, rej) => {
|
await new Promise((res, rej) => {
|
||||||
worker.postMessage({chatBytes, path, difficulty});
|
worker.postMessage({chatBytes, path, difficulty});
|
||||||
|
|
||||||
worker.onmessage = e => {
|
worker.onmessage = e => {
|
||||||
worker.terminate()
|
chatBytesArray = e.data.chatBytesArray;
|
||||||
chatBytesArray = e.data.chatBytesArray
|
nonce = e.data.nonce;
|
||||||
nonce = e.data.nonce
|
res();
|
||||||
res()
|
|
||||||
|
|
||||||
}
|
}
|
||||||
})
|
});
|
||||||
|
|
||||||
let _response = await parentEpml.request('sign_chat', {
|
let _response = await parentEpml.request('sign_chat', {
|
||||||
nonce: this.selectedAddress.nonce,
|
nonce: this.selectedAddress.nonce,
|
||||||
@ -2184,7 +2219,6 @@ class ChatPage extends LitElement {
|
|||||||
chatNonce: nonce
|
chatNonce: nonce
|
||||||
});
|
});
|
||||||
|
|
||||||
|
|
||||||
getSendChatResponse(_response, isForward);
|
getSendChatResponse(_response, isForward);
|
||||||
};
|
};
|
||||||
|
|
||||||
@ -2232,7 +2266,7 @@ class ChatPage extends LitElement {
|
|||||||
if (entries[0].isIntersecting) {
|
if (entries[0].isIntersecting) {
|
||||||
|
|
||||||
this.setIsUserDown(true)
|
this.setIsUserDown(true)
|
||||||
this.hideNewMesssageBar()
|
this.hideNewMessageBar()
|
||||||
} else {
|
} else {
|
||||||
|
|
||||||
this.setIsUserDown(false)
|
this.setIsUserDown(false)
|
||||||
|
@ -446,4 +446,52 @@ export const chatStyles = css`
|
|||||||
width: 100%;
|
width: 100%;
|
||||||
justify-content: center
|
justify-content: center
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.delete-image-msg {
|
||||||
|
font-family: Livvic, sans-serif;
|
||||||
|
font-size: 20px;
|
||||||
|
color: var(--chat-bubble-msg-color);
|
||||||
|
letter-spacing: 0.3px;
|
||||||
|
font-weight: 300;
|
||||||
|
text-align: center;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-row {
|
||||||
|
display: flex;
|
||||||
|
align-items: center;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button {
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
color: var(--mdc-theme-primary);
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 8px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: none;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-red {
|
||||||
|
font-family: Roboto, sans-serif;
|
||||||
|
font-size: 16px;
|
||||||
|
color: #F44336;
|
||||||
|
background-color: transparent;
|
||||||
|
padding: 8px 10px;
|
||||||
|
border-radius: 5px;
|
||||||
|
border: none;
|
||||||
|
transition: all 0.3s ease-in-out;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button-red:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #f4433663;
|
||||||
|
}
|
||||||
|
|
||||||
|
.modal-button:hover {
|
||||||
|
cursor: pointer;
|
||||||
|
background-color: #03a8f475;
|
||||||
|
}
|
||||||
`
|
`
|
||||||
|
@ -37,6 +37,7 @@ class ChatScroller extends LitElement {
|
|||||||
setIsLoadingMessages: {attribute: false},
|
setIsLoadingMessages: {attribute: false},
|
||||||
chatId: { type: String },
|
chatId: { type: String },
|
||||||
setForwardProperties: { attribute: false },
|
setForwardProperties: { attribute: false },
|
||||||
|
setOpenPrivateMessage: { attribute: false },
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -53,12 +54,22 @@ class ChatScroller extends LitElement {
|
|||||||
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
console.log({messages: this.messages})
|
let formattedMessages = this.messages.reduce((messageArray, message, index) => {
|
||||||
let formattedMessages = this.messages.reduce((messageArray, message) => {
|
|
||||||
const lastGroupedMessage = messageArray[messageArray.length - 1];
|
const lastGroupedMessage = messageArray[messageArray.length - 1];
|
||||||
let timestamp;
|
let timestamp;
|
||||||
let sender;
|
let sender;
|
||||||
let repliedToData;
|
let repliedToData;
|
||||||
|
|
||||||
|
let firstMessageInChat;
|
||||||
|
|
||||||
|
if (index === 0) {
|
||||||
|
firstMessageInChat = true;
|
||||||
|
} else {
|
||||||
|
firstMessageInChat = false;
|
||||||
|
}
|
||||||
|
|
||||||
|
message = {...message, firstMessageInChat}
|
||||||
|
|
||||||
if (lastGroupedMessage) {
|
if (lastGroupedMessage) {
|
||||||
timestamp = lastGroupedMessage.timestamp;
|
timestamp = lastGroupedMessage.timestamp;
|
||||||
sender = lastGroupedMessage.sender;
|
sender = lastGroupedMessage.sender;
|
||||||
@ -105,6 +116,7 @@ class ChatScroller extends LitElement {
|
|||||||
?isLastMessageInGroup=${indexMessage === formattedMessage.messages.length - 1}
|
?isLastMessageInGroup=${indexMessage === formattedMessage.messages.length - 1}
|
||||||
.setToggledMessage=${this.setToggledMessage}
|
.setToggledMessage=${this.setToggledMessage}
|
||||||
.setForwardProperties=${this.setForwardProperties}
|
.setForwardProperties=${this.setForwardProperties}
|
||||||
|
.setOpenPrivateMessage=${(val) => this.setOpenPrivateMessage(val)}
|
||||||
>
|
>
|
||||||
</message-template>`
|
</message-template>`
|
||||||
)
|
)
|
||||||
@ -133,10 +145,9 @@ class ChatScroller extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
setToggledMessage (message) {
|
setToggledMessage (message) {
|
||||||
toggledMessage = message
|
toggledMessage = message;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
async firstUpdated() {
|
async firstUpdated() {
|
||||||
this.emojiPicker.on('emoji', selection => {
|
this.emojiPicker.on('emoji', selection => {
|
||||||
|
|
||||||
@ -144,8 +155,6 @@ class ChatScroller extends LitElement {
|
|||||||
type: 'reaction',
|
type: 'reaction',
|
||||||
editedMessageObj: toggledMessage,
|
editedMessageObj: toggledMessage,
|
||||||
reaction: selection.emoji,
|
reaction: selection.emoji,
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
});
|
});
|
||||||
this.viewElement = this.shadowRoot.getElementById('viewElement');
|
this.viewElement = this.shadowRoot.getElementById('viewElement');
|
||||||
@ -226,13 +235,15 @@ class MessageTemplate extends LitElement {
|
|||||||
sendMessage: { attribute: false },
|
sendMessage: { attribute: false },
|
||||||
sendMessageForward: { attribute: false },
|
sendMessageForward: { attribute: false },
|
||||||
openDialogImage: { attribute: false },
|
openDialogImage: { attribute: false },
|
||||||
|
openDeleteImage: { type: Boolean },
|
||||||
isImageLoaded: { type: Boolean },
|
isImageLoaded: { type: Boolean },
|
||||||
isFirstMessage: { type: Boolean },
|
isFirstMessage: { type: Boolean },
|
||||||
isSingleMessageInGroup: { type: Boolean },
|
isSingleMessageInGroup: { type: Boolean },
|
||||||
isLastMessageInGroup: { type: Boolean },
|
isLastMessageInGroup: { type: Boolean },
|
||||||
setToggledMessage: {attribute: false},
|
setToggledMessage: {attribute: false},
|
||||||
setForwardProperties: {attribute: false},
|
setForwardProperties: {attribute: false},
|
||||||
viewImage: {type: Boolean}
|
viewImage: {type: Boolean},
|
||||||
|
setOpenPrivateMessage : { attribute: false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -477,12 +488,10 @@ class MessageTemplate extends LitElement {
|
|||||||
class=${[`image-container`, !this.isImageLoaded ? 'defaultSize' : ''].join(' ')}
|
class=${[`image-container`, !this.isImageLoaded ? 'defaultSize' : ''].join(' ')}
|
||||||
style=${this.isFirstMessage && "margin-top: 10px;"}>
|
style=${this.isFirstMessage && "margin-top: 10px;"}>
|
||||||
${imageHTML}<vaadin-icon
|
${imageHTML}<vaadin-icon
|
||||||
@click=${() => this.sendMessage({
|
@click=${() => {
|
||||||
type: 'delete',
|
this.openDeleteImage = true;
|
||||||
name: image.name,
|
this.chatE
|
||||||
identifier: image.identifier,
|
}}
|
||||||
editedMessageObj: this.messageObj,
|
|
||||||
})}
|
|
||||||
class="image-delete-icon" icon="vaadin:close" slot="icon"></vaadin-icon>
|
class="image-delete-icon" icon="vaadin:close" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
` : image && isImageDeleted ? html`
|
` : image && isImageDeleted ? html`
|
||||||
@ -527,6 +536,8 @@ class MessageTemplate extends LitElement {
|
|||||||
.emojiPicker=${this.emojiPicker}
|
.emojiPicker=${this.emojiPicker}
|
||||||
.setToggledMessage=${this.setToggledMessage}
|
.setToggledMessage=${this.setToggledMessage}
|
||||||
.setForwardProperties=${this.setForwardProperties}
|
.setForwardProperties=${this.setForwardProperties}
|
||||||
|
?firstMessageInChat=${this.messageObj.firstMessageInChat}
|
||||||
|
.setOpenPrivateMessage=${(val) => this.setOpenPrivateMessage(val)}
|
||||||
>
|
>
|
||||||
</chat-menu>
|
</chat-menu>
|
||||||
</div>
|
</div>
|
||||||
@ -580,6 +591,31 @@ class MessageTemplate extends LitElement {
|
|||||||
${translate("general.close")}
|
${translate("general.close")}
|
||||||
</mwc-button>
|
</mwc-button>
|
||||||
</mwc-dialog>
|
</mwc-dialog>
|
||||||
|
<mwc-dialog
|
||||||
|
hideActions
|
||||||
|
?open=${this.openDeleteImage}
|
||||||
|
@closed=${()=> {
|
||||||
|
this.openDeleteImage = false;
|
||||||
|
}}>
|
||||||
|
<div class="delete-image-msg">
|
||||||
|
<p>Are you sure you want to delete this image?</p>
|
||||||
|
</div>
|
||||||
|
<div class="modal-button-row" @click=${() => this.openDeleteImage = false}>
|
||||||
|
<button class="modal-button-red">
|
||||||
|
Cancel
|
||||||
|
</button>
|
||||||
|
<button
|
||||||
|
class="modal-button"
|
||||||
|
@click=${() => this.sendMessage({
|
||||||
|
type: 'delete',
|
||||||
|
name: image.name,
|
||||||
|
identifier: image.identifier,
|
||||||
|
editedMessageObj: this.messageObj,
|
||||||
|
})}>
|
||||||
|
Yes
|
||||||
|
</button>
|
||||||
|
</div>
|
||||||
|
</mwc-dialog>
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -605,7 +641,9 @@ class ChatMenu extends LitElement {
|
|||||||
version: { type: String },
|
version: { type: String },
|
||||||
setToggledMessage: { attribute: false },
|
setToggledMessage: { attribute: false },
|
||||||
sendMessageForward: { attribute: false },
|
sendMessageForward: { attribute: false },
|
||||||
setForwardProperties: {attribute: false}
|
setForwardProperties: { attribute: false },
|
||||||
|
firstMessageInChat: { type: Boolean },
|
||||||
|
setOpenPrivateMessage: { attribute: false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -684,7 +722,7 @@ class ChatMenu extends LitElement {
|
|||||||
return html`
|
return html`
|
||||||
<div class="container">
|
<div class="container">
|
||||||
<div
|
<div
|
||||||
class="menu-icon tooltip reaction"
|
class=${`menu-icon reaction ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange13")}"
|
data-text="${translate("blockpage.bcchange13")}"
|
||||||
@click=${(e) => {
|
@click=${(e) => {
|
||||||
if(this.version === '0'){
|
if(this.version === '0'){
|
||||||
@ -703,21 +741,24 @@ class ChatMenu extends LitElement {
|
|||||||
<vaadin-icon icon="vaadin:smiley-o" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:smiley-o" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="menu-icon tooltip"
|
class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange14")}"
|
data-text="${translate("blockpage.bcchange14")}"
|
||||||
@click="${() => {
|
@click="${() => {
|
||||||
this.messageForwardFunc()
|
this.messageForwardFunc()
|
||||||
}}">
|
}}">
|
||||||
<vaadin-icon icon="vaadin:arrow-forward" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:arrow-forward" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu-icon tooltip" data-text="${translate("blockpage.bcchange9")}" @click="${() => this.showPrivateMessageModal()}">
|
<div class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`} data-text="${translate("blockpage.bcchange9")}" @click="${() => this.setOpenPrivateMessage({
|
||||||
|
name: this.originalMessage.senderName ? this.originalMessage.senderName : this.originalMessage.sender,
|
||||||
|
open: true
|
||||||
|
})}">
|
||||||
<vaadin-icon icon="vaadin:paperplane" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:paperplane" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
<div class="menu-icon tooltip" data-text="${translate("blockpage.bcchange8")}" @click="${() => this.copyToClipboard(this.toblockaddress)}">
|
<div class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`} data-text="${translate("blockpage.bcchange8")}" @click="${() => this.copyToClipboard(this.toblockaddress)}">
|
||||||
<vaadin-icon icon="vaadin:copy" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:copy" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
<div
|
<div
|
||||||
class="menu-icon tooltip"
|
class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange11")}"
|
data-text="${translate("blockpage.bcchange11")}"
|
||||||
@click="${() => {
|
@click="${() => {
|
||||||
if (this.version === '0') {
|
if (this.version === '0') {
|
||||||
@ -733,7 +774,7 @@ class ChatMenu extends LitElement {
|
|||||||
${this.myAddress === this.originalMessage.sender ? (
|
${this.myAddress === this.originalMessage.sender ? (
|
||||||
html`
|
html`
|
||||||
<div
|
<div
|
||||||
class="menu-icon tooltip"
|
class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`}
|
||||||
data-text="${translate("blockpage.bcchange12")}"
|
data-text="${translate("blockpage.bcchange12")}"
|
||||||
@click=${() => {
|
@click=${() => {
|
||||||
if(this.version === '0'){
|
if(this.version === '0'){
|
||||||
@ -747,7 +788,7 @@ class ChatMenu extends LitElement {
|
|||||||
</div>
|
</div>
|
||||||
`
|
`
|
||||||
) : html`<div></div>`}
|
) : html`<div></div>`}
|
||||||
<div class="menu-icon tooltip" data-text="${translate("blockpage.bcchange10")}" @click="${() => this.showBlockIconFunc(true)}">
|
<div class=${`menu-icon ${!this.firstMessageInChat ? "tooltip" : ""}`} data-text="${translate("blockpage.bcchange10")}" @click="${() => this.showBlockIconFunc(true)}">
|
||||||
<vaadin-icon icon="vaadin:ellipsis-dots-h" slot="icon"></vaadin-icon>
|
<vaadin-icon icon="vaadin:ellipsis-dots-h" slot="icon"></vaadin-icon>
|
||||||
</div>
|
</div>
|
||||||
${this.showBlockAddressIcon
|
${this.showBlockAddressIcon
|
||||||
|
@ -25,7 +25,8 @@ class ChatWelcomePage extends LitElement {
|
|||||||
btnDisable: { type: Boolean },
|
btnDisable: { type: Boolean },
|
||||||
isLoading: { type: Boolean },
|
isLoading: { type: Boolean },
|
||||||
balance: { type: Number },
|
balance: { type: Number },
|
||||||
theme: { type: String, reflect: true }
|
theme: { type: String, reflect: true },
|
||||||
|
setOpenPrivateMessage: { attribute: false }
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -212,7 +213,14 @@ class ChatWelcomePage extends LitElement {
|
|||||||
<div class="center-box">
|
<div class="center-box">
|
||||||
<mwc-icon class="img-icon">chat</mwc-icon><br>
|
<mwc-icon class="img-icon">chat</mwc-icon><br>
|
||||||
<span style="font-size: 20px; color: var(--black);">${this.myAddress.address}</span>
|
<span style="font-size: 20px; color: var(--black);">${this.myAddress.address}</span>
|
||||||
<div class="start-chat" @click=${() => this.shadowRoot.querySelector('#startSecondChatDialog').show()}>${translate("welcomepage.wcchange2")}</div>
|
<div
|
||||||
|
class="start-chat"
|
||||||
|
@click="${() => this.setOpenPrivateMessage({
|
||||||
|
name: "",
|
||||||
|
open: true
|
||||||
|
})}">
|
||||||
|
${translate("welcomepage.wcchange2")}
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
|
@ -250,15 +250,15 @@ class NameMenu extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
firstUpdated() {
|
firstUpdated() {
|
||||||
this.getChatBlockedAdresses()
|
this.getChatBlockedAdresses();
|
||||||
|
|
||||||
setInterval(() => {
|
setInterval(() => {
|
||||||
this.getChatBlockedAdresses();
|
this.getChatBlockedAdresses();
|
||||||
}, 60000)
|
}, 60000)
|
||||||
|
|
||||||
window.addEventListener('storage', () => {
|
window.addEventListener('storage', () => {
|
||||||
const checkLanguage = localStorage.getItem('qortalLanguage')
|
const checkLanguage = localStorage.getItem('qortalLanguage');
|
||||||
use(checkLanguage)
|
use(checkLanguage);
|
||||||
})
|
})
|
||||||
|
|
||||||
window.onclick = function(event) {
|
window.onclick = function(event) {
|
||||||
|
@ -70,8 +70,9 @@ class Chat extends LitElement {
|
|||||||
this.messages = []
|
this.messages = []
|
||||||
this.btnDisable = false
|
this.btnDisable = false
|
||||||
this.isLoading = false
|
this.isLoading = false
|
||||||
this.showNewMesssageBar = this.showNewMesssageBar.bind(this)
|
this.showNewMessageBar = this.showNewMessageBar.bind(this)
|
||||||
this.hideNewMesssageBar = this.hideNewMesssageBar.bind(this)
|
this.hideNewMessageBar = this.hideNewMessageBar.bind(this)
|
||||||
|
this.setOpenPrivateMessage = this.setOpenPrivateMessage.bind(this)
|
||||||
this._sendMessage = this._sendMessage.bind(this)
|
this._sendMessage = this._sendMessage.bind(this)
|
||||||
this.insertImage = this.insertImage.bind(this)
|
this.insertImage = this.insertImage.bind(this)
|
||||||
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
|
this.theme = localStorage.getItem('qortalTheme') ? localStorage.getItem('qortalTheme') : 'light'
|
||||||
@ -399,6 +400,11 @@ class Chat extends LitElement {
|
|||||||
parentEpml.imReady()
|
parentEpml.imReady()
|
||||||
}
|
}
|
||||||
|
|
||||||
|
setOpenPrivateMessage(props) {
|
||||||
|
this.openPrivateMessage = props.open;
|
||||||
|
this.shadowRoot.getElementById("sendTo").value = props.name
|
||||||
|
}
|
||||||
|
|
||||||
async userSearch() {
|
async userSearch() {
|
||||||
const nameValue = this.shadowRoot.getElementById('sendTo').value;
|
const nameValue = this.shadowRoot.getElementById('sendTo').value;
|
||||||
if(!nameValue) {
|
if(!nameValue) {
|
||||||
@ -725,7 +731,11 @@ class Chat extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderChatWelcomePage() {
|
renderChatWelcomePage() {
|
||||||
return html`<chat-welcome-page myAddress=${JSON.stringify(this.selectedAddress)}></chat-welcome-page>`
|
return html`
|
||||||
|
<chat-welcome-page
|
||||||
|
myAddress=${JSON.stringify(this.selectedAddress)}
|
||||||
|
.setOpenPrivateMessage=${(val) => this.setOpenPrivateMessage(val)}>
|
||||||
|
</chat-welcome-page>`
|
||||||
}
|
}
|
||||||
|
|
||||||
renderChatHead(chatHeadArr) {
|
renderChatHead(chatHeadArr) {
|
||||||
@ -745,7 +755,7 @@ class Chat extends LitElement {
|
|||||||
// Else render Welcome to Q-CHat
|
// Else render Welcome to Q-CHat
|
||||||
|
|
||||||
// TODO: DONE: Do the above in the ChatPage
|
// TODO: DONE: Do the above in the ChatPage
|
||||||
return html`<chat-page .chatHeads=${this.chatHeads} .hideNewMesssageBar=${this.hideNewMesssageBar} .showNewMesssageBar=${this.showNewMesssageBar} myAddress=${window.parent.reduxStore.getState().app.selectedAddress.address} chatId=${this.activeChatHeadUrl}></chat-page>`
|
return html`<chat-page .chatHeads=${this.chatHeads} .hideNewMessageBar=${this.hideNewMessageBar} .showNewMessageBar=${this.showNewMessageBar} myAddress=${window.parent.reduxStore.getState().app.selectedAddress.address} chatId=${this.activeChatHeadUrl} .setOpenPrivateMessage=${(val) => this.setOpenPrivateMessage(val)}></chat-page>`
|
||||||
}
|
}
|
||||||
|
|
||||||
setChatHeads(chatObj) {
|
setChatHeads(chatObj) {
|
||||||
@ -835,11 +845,11 @@ class Chat extends LitElement {
|
|||||||
viewElement.scroll({ top: viewElement.scrollHeight, left: 0, behavior: 'smooth' })
|
viewElement.scroll({ top: viewElement.scrollHeight, left: 0, behavior: 'smooth' })
|
||||||
}
|
}
|
||||||
|
|
||||||
showNewMesssageBar() {
|
showNewMessageBar() {
|
||||||
this.shadowRoot.getElementById('newMessageBar').classList.remove('hide-new-message-bar')
|
this.shadowRoot.getElementById('newMessageBar').classList.remove('hide-new-message-bar')
|
||||||
}
|
}
|
||||||
|
|
||||||
hideNewMesssageBar() {
|
hideNewMessageBar() {
|
||||||
this.shadowRoot.getElementById('newMessageBar').classList.add('hide-new-message-bar')
|
this.shadowRoot.getElementById('newMessageBar').classList.add('hide-new-message-bar')
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
x
Reference in New Issue
Block a user