Merge remote-tracking branch 'justin/feature/implement-UI-edit-reply-messages' into feature/implement-logic-edit-reply-messages
BIN
img/badges/level-0.png
Normal file
After Width: | Height: | Size: 4.8 KiB |
BIN
img/badges/level-1.png
Normal file
After Width: | Height: | Size: 4.3 KiB |
BIN
img/badges/level-2.png
Normal file
After Width: | Height: | Size: 5.2 KiB |
BIN
img/badges/level-3.png
Normal file
After Width: | Height: | Size: 5.5 KiB |
BIN
img/badges/level-4.png
Normal file
After Width: | Height: | Size: 7.4 KiB |
BIN
img/badges/level-5.png
Normal file
After Width: | Height: | Size: 6.6 KiB |
BIN
img/qortal-chat-logo.png
Normal file
After Width: | Height: | Size: 11 KiB |
@ -559,7 +559,7 @@ class ChatPage extends LitElement {
|
|||||||
<div></div>
|
<div></div>
|
||||||
</div>
|
</div>
|
||||||
` :
|
` :
|
||||||
this.renderChatScroller(this._initialMessages)}
|
this.renderChatScroller()}
|
||||||
<mwc-dialog
|
<mwc-dialog
|
||||||
id="showDialogPublicKey"
|
id="showDialogPublicKey"
|
||||||
?open=${this.imageFile}
|
?open=${this.imageFile}
|
||||||
@ -900,9 +900,9 @@ class ChatPage extends LitElement {
|
|||||||
if (changedProperties.has('messagesRendered')) {
|
if (changedProperties.has('messagesRendered')) {
|
||||||
const chatReference1 = this.isReceipient ? 'direct' : 'group';
|
const chatReference1 = this.isReceipient ? 'direct' : 'group';
|
||||||
const chatReference2 = this._chatId
|
const chatReference2 = this._chatId
|
||||||
if (chatReference1 && chatReference2) {
|
// if (chatReference1 && chatReference2) {
|
||||||
await messagesCache.setItem(`${chatReference1}-${chatReference2}`, this.messagesRendered);
|
// await messagesCache.setItem(`${chatReference1}-${chatReference2}`, this.messagesRendered);
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
if (changedProperties && changedProperties.has('editedMessageObj')) {
|
if (changedProperties && changedProperties.has('editedMessageObj')) {
|
||||||
this.chatEditor.insertText(this.editedMessageObj.message)
|
this.chatEditor.insertText(this.editedMessageObj.message)
|
||||||
@ -949,10 +949,9 @@ class ChatPage extends LitElement {
|
|||||||
this.chatEditorPlaceholder = placeholder;
|
this.chatEditorPlaceholder = placeholder;
|
||||||
}
|
}
|
||||||
|
|
||||||
renderChatScroller(initialMessages) {
|
renderChatScroller() {
|
||||||
return html`
|
return html`
|
||||||
<chat-scroller
|
<chat-scroller
|
||||||
.initialMessages=${initialMessages}
|
|
||||||
.messages=${this.messagesRendered}
|
.messages=${this.messagesRendered}
|
||||||
.emojiPicker=${this.emojiPicker}
|
.emojiPicker=${this.emojiPicker}
|
||||||
.escapeHTML=${escape}
|
.escapeHTML=${escape}
|
||||||
@ -1062,8 +1061,7 @@ class ChatPage extends LitElement {
|
|||||||
})
|
})
|
||||||
|
|
||||||
// TODO: Determine number of initial messages by screen height...
|
// TODO: Determine number of initial messages by screen height...
|
||||||
this._initialMessages = this._messages;
|
this.messagesRendered = this._messages;
|
||||||
this.messagesRendered = this._initialMessages;
|
|
||||||
this.isLoadingMessages = false;
|
this.isLoadingMessages = false;
|
||||||
setTimeout(() => this.downElementObserver(), 500);
|
setTimeout(() => this.downElementObserver(), 500);
|
||||||
} else {
|
} else {
|
||||||
@ -1189,7 +1187,7 @@ class ChatPage extends LitElement {
|
|||||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||||
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
||||||
const avatarUrl = `${nodeUrl}/arbitrary/THUMBNAIL/${messageObj.senderName}/qortal_avatar?async=true&apiKey=${myNode.apiKey}`
|
const avatarUrl = `${nodeUrl}/arbitrary/THUMBNAIL/${messageObj.senderName}/qortal_avatar?async=true&apiKey=${myNode.apiKey}`
|
||||||
avatarImg = `<img src="${avatarUrl}" style="max-width:100%; max-height:100%;" onerror="this.onerror=null; this.src='/img/incognito.png';" />`
|
avatarImg = `<img src="${avatarUrl}" style="max-width:100%; max-height:100%;" onerror="this.onerror=null; this.src='/img/qortal-chat-logo.png';" />`
|
||||||
}
|
}
|
||||||
|
|
||||||
if (messageObj.sender === this.myAddress) {
|
if (messageObj.sender === this.myAddress) {
|
||||||
|
@ -93,19 +93,32 @@ export const chatStyles = css`
|
|||||||
}
|
}
|
||||||
|
|
||||||
.message-data-time {
|
.message-data-time {
|
||||||
color: #a8aab1;
|
color: #888888;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
padding-left: 6px;
|
|
||||||
padding-bottom: 4px;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
float: right;
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
transform: translateY(10px);
|
||||||
}
|
}
|
||||||
|
|
||||||
.message-data-level {
|
.message-data-time-hidden {
|
||||||
color: #03a9f4;
|
visibility: hidden;
|
||||||
|
transition: all 0.1s ease-in-out;
|
||||||
|
color: #888888;
|
||||||
font-size: 13px;
|
font-size: 13px;
|
||||||
padding-left: 8px;
|
|
||||||
padding-bottom: 4px;
|
|
||||||
user-select: none;
|
user-select: none;
|
||||||
|
float: right;
|
||||||
|
padding-left: 15px;
|
||||||
|
padding-bottom: 3px;
|
||||||
|
transform: translateY(10px);
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-user-info {
|
||||||
|
display: flex;
|
||||||
|
justify-content: space-between;
|
||||||
|
width: 100%;
|
||||||
|
gap: 10px;
|
||||||
}
|
}
|
||||||
|
|
||||||
.chat-bubble-container {
|
.chat-bubble-container {
|
||||||
@ -231,6 +244,10 @@ export const chatStyles = css`
|
|||||||
display: block;
|
display: block;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.message-parent:hover .message-data-time-hidden {
|
||||||
|
visibility: visible;
|
||||||
|
}
|
||||||
|
|
||||||
.chat-hover {
|
.chat-hover {
|
||||||
display: none;
|
display: none;
|
||||||
position: absolute;
|
position: absolute;
|
||||||
|
@ -14,8 +14,7 @@ import '@material/mwc-button';
|
|||||||
import '@material/mwc-dialog';
|
import '@material/mwc-dialog';
|
||||||
import '@material/mwc-icon';
|
import '@material/mwc-icon';
|
||||||
import { EmojiPicker } from 'emoji-picker-js';
|
import { EmojiPicker } from 'emoji-picker-js';
|
||||||
import {cropAddress} from "../../utils/cropAddress";
|
import { cropAddress } from "../../utils/cropAddress";
|
||||||
|
|
||||||
|
|
||||||
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
|
||||||
class ChatScroller extends LitElement {
|
class ChatScroller extends LitElement {
|
||||||
@ -25,7 +24,6 @@ class ChatScroller extends LitElement {
|
|||||||
getOldMessage: { attribute: false },
|
getOldMessage: { attribute: false },
|
||||||
emojiPicker: { attribute: false },
|
emojiPicker: { attribute: false },
|
||||||
escapeHTML: { attribute: false },
|
escapeHTML: { attribute: false },
|
||||||
initialMessages: { type: Array }, // First set of messages to load.. 15 messages max ( props )
|
|
||||||
messages: { type: Array },
|
messages: { type: Array },
|
||||||
hideMessages: { type: Array },
|
hideMessages: { type: Array },
|
||||||
setRepliedToMessageObj: { type: Function },
|
setRepliedToMessageObj: { type: Function },
|
||||||
@ -50,27 +48,27 @@ class ChatScroller extends LitElement {
|
|||||||
render() {
|
render() {
|
||||||
console.log({messages: this.messages})
|
console.log({messages: this.messages})
|
||||||
|
|
||||||
let formattedMessages = this.messages.reduce((messageArray, message)=> {
|
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;
|
||||||
if(lastGroupedMessage){
|
if (lastGroupedMessage) {
|
||||||
timestamp = lastGroupedMessage.timestamp
|
timestamp = lastGroupedMessage.timestamp;
|
||||||
sender = lastGroupedMessage.sender
|
sender = lastGroupedMessage.sender;
|
||||||
repliedToData = lastGroupedMessage.repliedToData
|
repliedToData = lastGroupedMessage.repliedToData;
|
||||||
}
|
}
|
||||||
const isSameGroup = Math.abs(timestamp - message.timestamp) < 600000 && sender === message.sender && !repliedToData
|
const isSameGroup = Math.abs(timestamp - message.timestamp) < 600000 && sender === message.sender && !repliedToData;
|
||||||
|
|
||||||
if(isSameGroup){
|
if (isSameGroup) {
|
||||||
messageArray[messageArray.length - 1].messages = [...(messageArray[messageArray.length - 1]?.messages || []), message]
|
messageArray[messageArray.length - 1].messages = [...(messageArray[messageArray.length - 1]?.messages || []), message];
|
||||||
} else {
|
} else {
|
||||||
messageArray.push({
|
messageArray.push({
|
||||||
messages: [message],
|
messages: [message],
|
||||||
...message
|
...message
|
||||||
})
|
});
|
||||||
}
|
}
|
||||||
return messageArray
|
return messageArray;
|
||||||
}, [])
|
}, [])
|
||||||
|
|
||||||
return html`
|
return html`
|
||||||
@ -248,8 +246,7 @@ class MessageTemplate extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
const parsedMessageObj = JSON.parse(this.messageObj.decodedMessage);
|
console.log(this.messageObj);
|
||||||
console.log({isFirstMessage: this.isFirstMessage, isSingleMessageInGroup: this.isSingleMessageInGroup, isLastMessageInGroup: this.isLastMessageInGroup, messageText: parsedMessageObj.messageText})
|
|
||||||
const hidemsg = this.hideMessages;
|
const hidemsg = this.hideMessages;
|
||||||
let message = "";
|
let message = "";
|
||||||
let reactions = [];
|
let reactions = [];
|
||||||
@ -282,9 +279,9 @@ class MessageTemplate extends LitElement {
|
|||||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node];
|
||||||
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port;
|
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port;
|
||||||
const avatarUrl = `${nodeUrl}/arbitrary/THUMBNAIL/${this.messageObj.senderName}/qortal_avatar?async=true&apiKey=${myNode.apiKey}`;
|
const avatarUrl = `${nodeUrl}/arbitrary/THUMBNAIL/${this.messageObj.senderName}/qortal_avatar?async=true&apiKey=${myNode.apiKey}`;
|
||||||
avatarImg = html`<img src="${avatarUrl}" style="max-width:100%; max-height:100%;" onerror="this.onerror=null; this.src='/img/incognito.png';" />`;
|
avatarImg = html`<img src="${avatarUrl}" style="max-width:100%; max-height:100%;" onerror="this.onerror=null; this.src='/img/qortal-chat-logo.png';" />`;
|
||||||
} else {
|
} else {
|
||||||
avatarImg = html`<img src='/img/incognito.png' style="max-width:100%; max-height:100%;" onerror="this.onerror=null;" />`
|
avatarImg = html`<img src='/img/qortal-chat-logo.png' style="max-width:100%; max-height:100%;" onerror="this.onerror=null;" />`
|
||||||
}
|
}
|
||||||
|
|
||||||
const createImage = (imageUrl) => {
|
const createImage = (imageUrl) => {
|
||||||
@ -348,14 +345,6 @@ class MessageTemplate extends LitElement {
|
|||||||
'padding-bottom: 0;'
|
'padding-bottom: 0;'
|
||||||
: null}
|
: null}
|
||||||
${this.isFirstMessage && 'margin-top: 20px;'}">
|
${this.isFirstMessage && 'margin-top: 20px;'}">
|
||||||
${this.isFirstMessage ? (
|
|
||||||
html`
|
|
||||||
<div class="message-data ${this.messageObj.sender === this.myAddress ? "" : ""}">
|
|
||||||
<span class="message-data-level">${levelFounder}</span>
|
|
||||||
<span class="message-data-time"><message-time timestamp=${this.messageObj.timestamp}></message-time></span>
|
|
||||||
</div>
|
|
||||||
`
|
|
||||||
) : null}
|
|
||||||
<div>
|
<div>
|
||||||
<div
|
<div
|
||||||
class="message-container"
|
class="message-container"
|
||||||
@ -383,13 +372,14 @@ class MessageTemplate extends LitElement {
|
|||||||
? 'border-radius: 8px 25px 25px 8px;'
|
? 'border-radius: 8px 25px 25px 8px;'
|
||||||
: (this.isFirstMessage === true && this.isSingleMessageInGroup === true && this.isLastMessageInGroup === false)
|
: (this.isFirstMessage === true && this.isSingleMessageInGroup === true && this.isLastMessageInGroup === false)
|
||||||
? 'border-radius: 27px 25px 25px 12px;'
|
? 'border-radius: 27px 25px 25px 12px;'
|
||||||
: (this.isFirstMessage === false && this.isSingleMessageInGroup === true && this.isLastMessageInGroup === true) ?
|
: (this.isFirstMessage === false && this.isSingleMessageInGroup === true && this.isLastMessageInGroup === true) ?
|
||||||
'border-radius: 10px 25px 25px 0;'
|
'border-radius: 10px 25px 25px 0;'
|
||||||
: this.isFirstMessage === true
|
: (this.isFirstMessage === true && this.isSingleMessageInGroup === false && this.isLastMessageInGroup === true)
|
||||||
? 'border-radius: 25px 25px 25px 0px;'
|
? 'border-radius: 25px 25px 25px 0px;'
|
||||||
: null
|
: null
|
||||||
}">
|
}">
|
||||||
${this.isFirstMessage ?
|
<div class="message-user-info">
|
||||||
|
${this.isFirstMessage ?
|
||||||
html`
|
html`
|
||||||
<span class="message-data-name">
|
<span class="message-data-name">
|
||||||
${nameMenu}
|
${nameMenu}
|
||||||
@ -397,6 +387,12 @@ class MessageTemplate extends LitElement {
|
|||||||
`
|
`
|
||||||
: null
|
: null
|
||||||
}
|
}
|
||||||
|
${this.isFirstMessage ? (
|
||||||
|
html`
|
||||||
|
<span class="message-data-level">${levelFounder}</span>
|
||||||
|
`
|
||||||
|
) : null}
|
||||||
|
</div>
|
||||||
${repliedToData && html`
|
${repliedToData && html`
|
||||||
<div class="original-message">
|
<div class="original-message">
|
||||||
<p class="original-message-sender">
|
<p class="original-message-sender">
|
||||||
@ -421,12 +417,23 @@ class MessageTemplate extends LitElement {
|
|||||||
` : html``}
|
` : html``}
|
||||||
<div id="messageContent" class="message">
|
<div id="messageContent" class="message">
|
||||||
${unsafeHTML(this.emojiPicker.parse(replacedMessage))}
|
${unsafeHTML(this.emojiPicker.parse(replacedMessage))}
|
||||||
|
<div class="${((this.isFirstMessage === false &&
|
||||||
|
this.isSingleMessageInGroup === true &&
|
||||||
|
this.isLastMessageInGroup === true) ||
|
||||||
|
(this.isFirstMessage === true &&
|
||||||
|
this.isSingleMessageInGroup === false &&
|
||||||
|
this.isLastMessageInGroup === true))
|
||||||
|
? 'message-data-time'
|
||||||
|
: 'message-data-time-hidden'
|
||||||
|
}">
|
||||||
|
<message-time timestamp=${this.messageObj.timestamp}></message-time>
|
||||||
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
<chat-menu
|
<chat-menu
|
||||||
tabindex="0"
|
tabindex="0"
|
||||||
class="chat-hover"
|
class="chat-hover"
|
||||||
style="${this.showBlockAddressIcon ? 'display: block;' : null} ${this.isFirstMessage && 'top: -50px'}"
|
style="${this.showBlockAddressIcon && 'display: block;'}"
|
||||||
toblockaddress="${this.messageObj.sender}"
|
toblockaddress="${this.messageObj.sender}"
|
||||||
.showPrivateMessageModal=${() => this.showPrivateMessageModal()}
|
.showPrivateMessageModal=${() => this.showPrivateMessageModal()}
|
||||||
.showBlockUserModal=${() => this.showBlockUserModal()}
|
.showBlockUserModal=${() => this.showBlockUserModal()}
|
||||||
@ -538,9 +545,7 @@ class ChatMenu extends LitElement {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
firstUpdated () {
|
||||||
|
|
||||||
firstUpdated(){
|
|
||||||
this.emojiPicker = new EmojiPicker({
|
this.emojiPicker = new EmojiPicker({
|
||||||
style: "twemoji",
|
style: "twemoji",
|
||||||
twemojiBaseUrl: '/emoji/',
|
twemojiBaseUrl: '/emoji/',
|
||||||
@ -558,13 +563,9 @@ class ChatMenu extends LitElement {
|
|||||||
reaction: selection.emoji,
|
reaction: selection.emoji,
|
||||||
|
|
||||||
|
|
||||||
})
|
})
|
||||||
|
});
|
||||||
});
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
render() {
|
render() {
|
||||||
return html`
|
return html`
|
||||||
|
@ -48,32 +48,42 @@ class LevelFounder extends LitElement {
|
|||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
}
|
}
|
||||||
|
|
||||||
.level {
|
|
||||||
position: relative;
|
|
||||||
display: inline;
|
|
||||||
}
|
|
||||||
|
|
||||||
.custom {
|
.custom {
|
||||||
--paper-tooltip-background: #03a9f4;
|
--paper-tooltip-background: #03a9f4;
|
||||||
--paper-tooltip-text-color: #fff;
|
--paper-tooltip-text-color: #fff;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.level-img-tooltip {
|
||||||
|
--paper-tooltip-background: #000000;
|
||||||
|
--paper-tooltip-text-color: #fff;
|
||||||
|
--paper-tooltip-delay-in: 300;
|
||||||
|
--paper-tooltip-delay-out: 3000;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-data {
|
||||||
|
display: flex;
|
||||||
|
justify-content: center;
|
||||||
|
gap: 5px;
|
||||||
|
}
|
||||||
|
|
||||||
|
.message-data-level {
|
||||||
|
width: 20px;
|
||||||
|
height: 20px;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
.badge {
|
.badge {
|
||||||
align-items: center;
|
align-items: center;
|
||||||
background: #03a9f4;
|
background: rgb(3, 169, 244);
|
||||||
border: 1px solid transparent;
|
border: 1px solid transparent;
|
||||||
border-radius: 99em;
|
border-radius: 50%;
|
||||||
color: #fff;
|
color: rgb(255, 255, 255);
|
||||||
display: flex;
|
display: flex;
|
||||||
font-size: 10px;
|
font-size: 10px;
|
||||||
font-weight: 400;
|
font-weight: 400;
|
||||||
height: 12px;
|
height: 12px;
|
||||||
|
width: 12px;
|
||||||
justify-content: center;
|
justify-content: center;
|
||||||
line-height: 1;
|
|
||||||
min-width: 12px;
|
|
||||||
position: absolute;
|
|
||||||
left: -16px;
|
|
||||||
top: -12px;
|
|
||||||
cursor: pointer;
|
cursor: pointer;
|
||||||
}
|
}
|
||||||
`
|
`
|
||||||
@ -87,7 +97,7 @@ class LevelFounder extends LitElement {
|
|||||||
|
|
||||||
render() {
|
render() {
|
||||||
return html`
|
return html`
|
||||||
<div class="level">
|
<div class="message-data">
|
||||||
${this.renderFounder()}
|
${this.renderFounder()}
|
||||||
${this.renderLevel()}
|
${this.renderLevel()}
|
||||||
</div>
|
</div>
|
||||||
@ -135,21 +145,24 @@ class LevelFounder extends LitElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
renderFounder() {
|
renderFounder() {
|
||||||
let adressfounder = this.memberInfo.flags
|
let adressfounder = this.memberInfo.flags;
|
||||||
if (adressfounder === 1) {
|
if (adressfounder === 1) {
|
||||||
return html `
|
return html `
|
||||||
<span id="founderTooltip" class="badge">F</span>
|
<span id="founderTooltip" class="badge">F</span>
|
||||||
<paper-tooltip class="custom" for="founderTooltip" position="top">FOUNDER</paper-tooltip>
|
<paper-tooltip class="custom" for="founderTooltip" position="top">FOUNDER</paper-tooltip>
|
||||||
`
|
`
|
||||||
} else {
|
} else {
|
||||||
return html ``
|
return null;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
renderLevel() {
|
renderLevel() {
|
||||||
let adresslevel = this.memberInfo.level
|
let adresslevel = this.memberInfo.level;
|
||||||
return html `
|
return html `
|
||||||
<span id="levelTooltip">${translate("mintingpage.mchange27")} ${adresslevel}</span>
|
<img id="level-img" src=${`/img/badges/level-${adresslevel}.png`} alt=${`badge-${adresslevel}`} class="message-data-level" />
|
||||||
|
<paper-tooltip class="level-img-tooltip" for="level-img" position="top" >
|
||||||
|
${translate("mintingpage.mchange27")} ${adresslevel}
|
||||||
|
</paper-tooltip>
|
||||||
`
|
`
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -272,7 +272,7 @@ class NameRegistration extends LitElement {
|
|||||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||||
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
||||||
const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`;
|
const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`;
|
||||||
return html`<img src="${url}" onerror="this.onerror=null; this.src='/img/incognito.png';">`
|
return html`<img src="${url}" onerror="this.onerror=null; this.src='/img/qortal-chat-logo.png';">`
|
||||||
}
|
}
|
||||||
|
|
||||||
renderAvatarButton(nameObj) {
|
renderAvatarButton(nameObj) {
|
||||||
|
@ -703,7 +703,7 @@ class Websites extends LitElement {
|
|||||||
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
const myNode = window.parent.reduxStore.getState().app.nodeConfig.knownNodes[window.parent.reduxStore.getState().app.nodeConfig.node]
|
||||||
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
const nodeUrl = myNode.protocol + '://' + myNode.domain + ':' + myNode.port
|
||||||
const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
|
const url = `${nodeUrl}/arbitrary/THUMBNAIL/${name}/qortal_avatar?async=true&apiKey=${this.getApiKey()}`
|
||||||
return html`<a class="visitSite" href="browser/index.html?name=${name}&service=${this.service}"><img src="${url}" onerror="this.src='/img/incognito.png';"></a>`
|
return html`<a class="visitSite" href="browser/index.html?name=${name}&service=${this.service}"><img src="${url}" onerror="this.src='/img/qortal-chat-logo.png';"></a>`
|
||||||
}
|
}
|
||||||
|
|
||||||
renderRelayModeText() {
|
renderRelayModeText() {
|
||||||
|
@ -534,7 +534,7 @@ class SponsorshipList extends LitElement {
|
|||||||
${sponsorship?.name ? html`
|
${sponsorship?.name ? html`
|
||||||
<img src=${sponsorship.url}
|
<img src=${sponsorship.url}
|
||||||
class="avatar-img"
|
class="avatar-img"
|
||||||
onerror="this.src='/img/incognito.png'"
|
onerror="this.src='/img/qortal-chat-logo.png'"
|
||||||
/>
|
/>
|
||||||
` : ''}
|
` : ''}
|
||||||
${sponsorship?.name || sponsorship.address}
|
${sponsorship?.name || sponsorship.address}
|
||||||
|