diff --git a/qortal-ui-plugins/plugins/utils/getUserNameFromAddress.js b/qortal-ui-plugins/plugins/utils/getUserNameFromAddress.js
index ded1de96..f8f02a53 100644
--- a/qortal-ui-plugins/plugins/utils/getUserNameFromAddress.js
+++ b/qortal-ui-plugins/plugins/utils/getUserNameFromAddress.js
@@ -1,4 +1,5 @@
import { Epml } from '../../epml.js';
+import { cropAddress } from './cropAddress.js';
const parentEpml = new Epml({ type: 'WINDOW', source: window.parent })
@@ -12,7 +13,7 @@ export const getUserNameFromAddress = async (address) => {
if (Array.isArray(getNames) && getNames.length > 0 ) {
return getNames[0].name;
} else {
- return address;
+ return cropAddress(address);
}
} catch (error) {
console.error(error);
From 631cffeb217bacae062b592d8680aaf9087456b0 Mon Sep 17 00:00:00 2001
From: Justin Ferrari <‘justinwesleyferrari@gmail.com’>
Date: Fri, 6 Jan 2023 14:13:13 -0500
Subject: [PATCH 3/7] Tip user completed
---
qortal-ui-core/language/us.json | 463 +++++++++---------
qortal-ui-plugins/package.json | 6 +-
.../plugins/core/components/ChatPage.js | 28 +-
.../plugins/core/components/ChatRightPanel.js | 385 ++-------------
.../plugins/core/components/TipUser-css.js | 85 ++++
.../plugins/core/components/TipUser.js | 282 +++++++++++
.../plugins/utils/getUserNameFromAddress.js | 2 +-
7 files changed, 670 insertions(+), 581 deletions(-)
create mode 100644 qortal-ui-plugins/plugins/core/components/TipUser-css.js
create mode 100644 qortal-ui-plugins/plugins/core/components/TipUser.js
diff --git a/qortal-ui-core/language/us.json b/qortal-ui-core/language/us.json
index 7958a057..66517cf1 100644
--- a/qortal-ui-core/language/us.json
+++ b/qortal-ui-core/language/us.json
@@ -21,22 +21,22 @@
"korean": "Korean"
},
"sidemenu": {
- "minting":"MINTING",
- "mintingdetails":"MINTING DETAILS",
- "becomeAMinter":"BECOME A MINTER",
- "wallets":"WALLETS",
- "tradeportal":"TRADE PORTAL",
- "rewardshare":"REWARD SHARE",
- "nameregistration":"NAME REGISTRATION",
- "websites":"WEBSITES",
- "management":"MANAGEMENT",
- "datamanagement":"DATA MANAGEMENT",
- "qchat":"Q-CHAT",
- "groupmanagement":"GROUP MANAGEMENT",
- "puzzles":"PUZZLES",
- "nodemanagement":"NODE MANAGEMENT",
- "trading":"TRADING",
- "groups":"GROUPS"
+ "minting": "MINTING",
+ "mintingdetails": "MINTING DETAILS",
+ "becomeAMinter": "BECOME A MINTER",
+ "wallets": "WALLETS",
+ "tradeportal": "TRADE PORTAL",
+ "rewardshare": "REWARD SHARE",
+ "nameregistration": "NAME REGISTRATION",
+ "websites": "WEBSITES",
+ "management": "MANAGEMENT",
+ "datamanagement": "DATA MANAGEMENT",
+ "qchat": "Q-CHAT",
+ "groupmanagement": "GROUP MANAGEMENT",
+ "puzzles": "PUZZLES",
+ "nodemanagement": "NODE MANAGEMENT",
+ "trading": "TRADING",
+ "groups": "GROUPS"
},
"login": {
"login": "Login",
@@ -130,32 +130,32 @@
"snack4": "Nodes successfully saved as",
"snack5": "Nodes successfully imported"
},
- "appinfo":{
- "blockheight":"Block Height",
- "uiversion":"UI Version",
- "coreversion":"Core Version",
- "minting":"(Minting)",
- "synchronizing":"Synchronizing",
- "peers":"Connected Peers"
+ "appinfo": {
+ "blockheight": "Block Height",
+ "uiversion": "UI Version",
+ "coreversion": "Core Version",
+ "minting": "(Minting)",
+ "synchronizing": "Synchronizing",
+ "peers": "Connected Peers"
},
"walletprofile": {
"minterlevel": "Minter Level",
"blocksminted": "Blocks Minted"
},
- "general":{
- "yes":"Yes",
- "no":"No",
- "confirm":"Confirm",
- "decline":"Decline",
- "open":"Open",
- "close":"Close",
- "back":"Back",
- "next":"Next",
- "create":"Create",
- "continue":"Continue",
- "save":"Save",
- "balance":"Balance",
- "balances":"YOUR WALLET BALANCES"
+ "general": {
+ "yes": "Yes",
+ "no": "No",
+ "confirm": "Confirm",
+ "decline": "Decline",
+ "open": "Open",
+ "close": "Close",
+ "back": "Back",
+ "next": "Next",
+ "create": "Create",
+ "continue": "Continue",
+ "save": "Save",
+ "balance": "Balance",
+ "balances": "YOUR WALLET BALANCES"
},
"startminting": {
"smchange1": "Cannot fetch minting accounts",
@@ -280,55 +280,55 @@
"wchange56": "WARNING!",
"wchange57": "Memo"
},
- "tradepage":{
- "tchange1":"Trade Portal",
- "tchange2":"Select Trading Pair",
- "tchange3":"HISTORIC MARKET TRADES",
- "tchange4":"MY TRADE HISTORY",
- "tchange5":"OPEN MARKET SELL ORDERS",
- "tchange6":"MY ORDERS",
- "tchange7":"Stuck Offers",
- "tchange8":"Amount",
- "tchange9":"Price",
- "tchange10":"Total",
- "tchange11":"Date",
- "tchange12":"Status",
- "tchange13":"Seller",
- "tchange14":"Price Each",
- "tchange15":"Clear Form",
- "tchange16":"You have",
- "tchange17":"Action",
- "tchange18":"BUY",
- "tchange19":"SELL",
- "tchange20":"Failed to Create Trade. Try again!",
- "tchange21":"Failed to Create Trade. Error Code",
- "tchange22":"Insufficient Funds!",
- "tchange23":"Buy Request Successful!",
- "tchange24":"Buy Request Existing!",
- "tchange25":"Failed to Create Trade. Error Code",
- "tchange26":"Trade Cancelling In Progress!",
- "tchange27":"Failed to Cancel Trade. Try again!",
- "tchange28":"Failed to Cancel Trade. Error Code",
- "tchange29":"CANCEL",
- "tchange30":"Failed to Fetch Balance. Try again!",
- "tchange31":"SOLD",
- "tchange32":"BOUGHT",
- "tchange33":"Average",
- "tchange34":"Amount can not be 0",
- "tchange35":"Price can not be 0",
- "tchange36":"PENDING AUTO BUY",
- "tchange37":"No auto buy order found !",
- "tchange38":"ADD",
- "tchange39":"AUTO BUY ORDER",
- "tchange40":"Price",
- "tchange41":"Successfully removed auto buy order!",
- "tchange42":"MARKET OPEN SELL ORDERS",
- "tchange43":"MY BUY HISTORY",
- "tchange44":"Successfully added auto buy order!",
- "tchange45":"AUTO BUY WITH",
- "tchange46":"AUTO BUY",
- "tchange47":"Sell for this price",
- "tchange48":"NOT ENOUGH"
+ "tradepage": {
+ "tchange1": "Trade Portal",
+ "tchange2": "Select Trading Pair",
+ "tchange3": "HISTORIC MARKET TRADES",
+ "tchange4": "MY TRADE HISTORY",
+ "tchange5": "OPEN MARKET SELL ORDERS",
+ "tchange6": "MY ORDERS",
+ "tchange7": "Stuck Offers",
+ "tchange8": "Amount",
+ "tchange9": "Price",
+ "tchange10": "Total",
+ "tchange11": "Date",
+ "tchange12": "Status",
+ "tchange13": "Seller",
+ "tchange14": "Price Each",
+ "tchange15": "Clear Form",
+ "tchange16": "You have",
+ "tchange17": "Action",
+ "tchange18": "BUY",
+ "tchange19": "SELL",
+ "tchange20": "Failed to Create Trade. Try again!",
+ "tchange21": "Failed to Create Trade. Error Code",
+ "tchange22": "Insufficient Funds!",
+ "tchange23": "Buy Request Successful!",
+ "tchange24": "Buy Request Existing!",
+ "tchange25": "Failed to Create Trade. Error Code",
+ "tchange26": "Trade Cancelling In Progress!",
+ "tchange27": "Failed to Cancel Trade. Try again!",
+ "tchange28": "Failed to Cancel Trade. Error Code",
+ "tchange29": "CANCEL",
+ "tchange30": "Failed to Fetch Balance. Try again!",
+ "tchange31": "SOLD",
+ "tchange32": "BOUGHT",
+ "tchange33": "Average",
+ "tchange34": "Amount can not be 0",
+ "tchange35": "Price can not be 0",
+ "tchange36": "PENDING AUTO BUY",
+ "tchange37": "No auto buy order found !",
+ "tchange38": "ADD",
+ "tchange39": "AUTO BUY ORDER",
+ "tchange40": "Price",
+ "tchange41": "Successfully removed auto buy order!",
+ "tchange42": "MARKET OPEN SELL ORDERS",
+ "tchange43": "MY BUY HISTORY",
+ "tchange44": "Successfully added auto buy order!",
+ "tchange45": "AUTO BUY WITH",
+ "tchange46": "AUTO BUY",
+ "tchange47": "Sell for this price",
+ "tchange48": "NOT ENOUGH"
},
"rewardsharepage": {
"rchange1": "Rewardshares",
@@ -354,47 +354,47 @@
"rchange21": "Reward Share Successful!",
"rchange22": "Reward Share Removed Successfully!"
},
- "registernamepage":{
- "nchange1":"Name Registration",
- "nchange2":"Register Name",
- "nchange3":"Registered Names",
- "nchange4":"Avatar",
- "nchange5":"Name",
- "nchange6":"Owner",
- "nchange7":"Action",
- "nchange8":"No names registered by this account!",
- "nchange9":"Register a Name!",
- "nchange10":"Description (optional)",
- "nchange11":"Doing something delicious",
- "nchange12":"Registering Name",
- "nchange13":"The current name registration fee is",
- "nchange14":"Register",
- "nchange15":"Set Avatar",
- "nchange16":"Need Core Update",
- "nchange17":"Name Already Exists!",
- "nchange18":"Name Registration Successful!",
- "nchange19":"Sell Name",
- "nchange20":"Cancel Sell",
- "nchange21":"Buy Name",
- "nchange22":"Open Market Names To Sell",
- "nchange23":"Sell Price",
- "nchange24":"No Names To Sell",
- "nchange25":"Name To Sell",
- "nchange26":"Are you sure to sell this name ?",
- "nchange27":"For this price in QORT",
- "nchange28":"On pressing confirm, the sell name request will be sent!",
- "nchange29":"Name To Cancel",
- "nchange30":"Are you sure to cancel the sell for this name ?",
- "nchange31":"On pressing confirm, the cancel sell name request will be sent!",
- "nchange32":"Sell Name Request Successful!",
- "nchange33":"Cancel Sell Name Request Successful!",
- "nchange34":"Buy Name Request Successful!",
- "nchange35":"YOU HAVE A NAME!",
- "nchange36":"Only accounts with no registered name can buy a name.",
- "nchange37":"ATTENTION!",
- "nchange38":"You not have enough qort to buy this name.",
- "nchange39":"Are you sure to buy this name ?",
- "nchange40":"On pressing confirm, the buy name request will be sent!"
+ "registernamepage": {
+ "nchange1": "Name Registration",
+ "nchange2": "Register Name",
+ "nchange3": "Registered Names",
+ "nchange4": "Avatar",
+ "nchange5": "Name",
+ "nchange6": "Owner",
+ "nchange7": "Action",
+ "nchange8": "No names registered by this account!",
+ "nchange9": "Register a Name!",
+ "nchange10": "Description (optional)",
+ "nchange11": "Doing something delicious",
+ "nchange12": "Registering Name",
+ "nchange13": "The current name registration fee is",
+ "nchange14": "Register",
+ "nchange15": "Set Avatar",
+ "nchange16": "Need Core Update",
+ "nchange17": "Name Already Exists!",
+ "nchange18": "Name Registration Successful!",
+ "nchange19": "Sell Name",
+ "nchange20": "Cancel Sell",
+ "nchange21": "Buy Name",
+ "nchange22": "Open Market Names To Sell",
+ "nchange23": "Sell Price",
+ "nchange24": "No Names To Sell",
+ "nchange25": "Name To Sell",
+ "nchange26": "Are you sure to sell this name ?",
+ "nchange27": "For this price in QORT",
+ "nchange28": "On pressing confirm, the sell name request will be sent!",
+ "nchange29": "Name To Cancel",
+ "nchange30": "Are you sure to cancel the sell for this name ?",
+ "nchange31": "On pressing confirm, the cancel sell name request will be sent!",
+ "nchange32": "Sell Name Request Successful!",
+ "nchange33": "Cancel Sell Name Request Successful!",
+ "nchange34": "Buy Name Request Successful!",
+ "nchange35": "YOU HAVE A NAME!",
+ "nchange36": "Only accounts with no registered name can buy a name.",
+ "nchange37": "ATTENTION!",
+ "nchange38": "You not have enough qort to buy this name.",
+ "nchange39": "Are you sure to buy this name ?",
+ "nchange40": "On pressing confirm, the buy name request will be sent!"
},
"websitespage": {
"schange1": "Browse Websites",
@@ -541,9 +541,8 @@
"cchange38": "User Verified",
"cchange39": "Cannot send an encrypted message to this user since they do not have their publickey on chain.",
"cchange40": "IMAGE (click to view)",
- "cchange41":"Your Balance Is Under 4.20 QORT",
- "cchange42":"Out of the need to combat spam, accounts with under 4.20 Qort balance will take a long time to SEND messages in Q-Chat. If you wish to immediately increase the send speed for Q-Chat messages, obtain over 4.20 QORT to your address. This can be done with trades in the Trade Portal, or by way of another Qortian giving you the QORT. Once you have over 4.20 QORT in your account, Q-Chat messages will be instant and this dialog will no more show. Thank you for your understanding of this necessary spam prevention method, and we hope you enjoy Qortal!"
-
+ "cchange41": "Your Balance Is Under 4.20 QORT",
+ "cchange42": "Out of the need to combat spam, accounts with under 4.20 Qort balance will take a long time to SEND messages in Q-Chat. If you wish to immediately increase the send speed for Q-Chat messages, obtain over 4.20 QORT to your address. This can be done with trades in the Trade Portal, or by way of another Qortian giving you the QORT. Once you have over 4.20 QORT in your account, Q-Chat messages will be instant and this dialog will no more show. Thank you for your understanding of this necessary spam prevention method, and we hope you enjoy Qortal!"
},
"welcomepage": {
"wcchange1": "Welcome to Q-Chat",
@@ -635,7 +634,15 @@
"gchange57": "TIP USER",
"gchange58": "Tip Amount",
"gchange59": "Available Balance",
- "gchange60": "Failed to Fetch QORT Balance. Try again!"
+ "gchange60": "Failed to Fetch QORT Balance. Try again!",
+ "gchange61": "Current static fee",
+ "gchange62": "Send",
+ "gchange63": "Insufficient Funds!",
+ "gchange64": "Invalid Amount!",
+ "gchange65": "Receiver cannot be empty!",
+ "gchange66": "Invalid Receiver!",
+ "gchange67": "Transaction Successful!",
+ "gchange68": "Transaction Failed!"
},
"puzzlepage": {
"pchange1": "Puzzles",
@@ -725,104 +732,104 @@
"rewarddialog5": "You are removing a reward share transaction associated with account:",
"rewarddialog6": "On pressing confirm, the rewardshare will be removed and the minting key will become invalid."
},
- "sponsorshipspage":{
- "schange1":"Active Sponsorships",
- "schange2":"Account Address",
- "schange3":"Total Sponsorships active",
- "schange4":"Next sponsorship ending in",
- "schange5":"Sponsor New Minter",
- "schange6":"Finished Sponsorships",
- "schange7":"Completed",
- "schange8":"Addresses",
- "schange9":"You currently have no active sponsorships",
- "schange10":"Public Key Lookup",
- "schange11":"Copy",
- "schange12":"Address to Public Key Converter",
- "schange13":"Enter address",
- "schange14":"In progress",
- "schange15":"Finishing up",
- "schange16":"Copy the key below and share it with your sponsored person.",
- "schange17":"Copied to clipboard",
- "schange18":"Warning: do not leave this plugin or close the Qortal UI until completion!",
- "schange19":"Copy Sponsorship Key",
- "schange20":"Creating relationship",
- "schange21":"Remove Sponsorship Key"
+ "sponsorshipspage": {
+ "schange1": "Active Sponsorships",
+ "schange2": "Account Address",
+ "schange3": "Total Sponsorships active",
+ "schange4": "Next sponsorship ending in",
+ "schange5": "Sponsor New Minter",
+ "schange6": "Finished Sponsorships",
+ "schange7": "Completed",
+ "schange8": "Addresses",
+ "schange9": "You currently have no active sponsorships",
+ "schange10": "Public Key Lookup",
+ "schange11": "Copy",
+ "schange12": "Address to Public Key Converter",
+ "schange13": "Enter address",
+ "schange14": "In progress",
+ "schange15": "Finishing up",
+ "schange16": "Copy the key below and share it with your sponsored person.",
+ "schange17": "Copied to clipboard",
+ "schange18": "Warning: do not leave this plugin or close the Qortal UI until completion!",
+ "schange19": "Copy Sponsorship Key",
+ "schange20": "Creating relationship",
+ "schange21": "Remove Sponsorship Key"
},
- "explorerpage":{
- "exp1":"Address or name to search",
- "exp2":"Account Balance",
- "exp3":"More Info",
- "exp4":"Address or Name not found !",
- "exp5":"Note that registered names are case-sensitive.",
- "exp6":"Founder",
- "exp7":"Info",
- "exp8":"Show all buy trades",
- "exp9":"Show all sell trades",
- "exp10":"BUY HISTORY",
- "exp11":"SELL HISTORY",
- "exp12":"No buy trades made yet.",
- "exp13":"No sell trades made yet.",
- "exp14":"Show complete info",
- "exp15":"Minting Since",
- "exp16":"Not Minting",
- "exp17":"ALL PAYMENTS",
- "exp18":"Payments",
- "exp19":"Sent",
- "exp20":"Received",
- "exp21":"Trades"
+ "explorerpage": {
+ "exp1": "Address or name to search",
+ "exp2": "Account Balance",
+ "exp3": "More Info",
+ "exp4": "Address or Name not found !",
+ "exp5": "Note that registered names are case-sensitive.",
+ "exp6": "Founder",
+ "exp7": "Info",
+ "exp8": "Show all buy trades",
+ "exp9": "Show all sell trades",
+ "exp10": "BUY HISTORY",
+ "exp11": "SELL HISTORY",
+ "exp12": "No buy trades made yet.",
+ "exp13": "No sell trades made yet.",
+ "exp14": "Show complete info",
+ "exp15": "Minting Since",
+ "exp16": "Not Minting",
+ "exp17": "ALL PAYMENTS",
+ "exp18": "Payments",
+ "exp19": "Sent",
+ "exp20": "Received",
+ "exp21": "Trades"
},
- "managegroup":{
- "mg1":"Group Members",
- "mg2":"Invite To Group",
- "mg3":"Group Admins",
- "mg4":"Update Group",
- "mg5":"Close Manage Group",
- "mg6":"BAN",
- "mg7":"KICK",
- "mg8":"Group ID",
- "mg9":"Joined",
- "mg10":"Add Group Admin",
- "mg11":"Are you sure to add this member to admins ?",
- "mg12":"On pressing confirm, add admin request will be sent!",
- "mg13":"Remove Group Admin",
- "mg14":"Remove Admin Address",
- "mg15":"Are you sure to remove this member from admins ?",
- "mg16":"On pressing confirm, remove admin request will be sent!",
- "mg17":"Ban Member From Group",
- "mg18":"Member Name",
- "mg19":"Member Address",
- "mg20":"How Long To Ban",
- "mg21":"Reason For Ban",
- "mg22":"Are you sure to ban this member from the group ?",
- "mg23":"On pressing confirm, the ban request will be sent!",
- "mg24":"FOREVER",
- "mg25":"Banned Members",
- "mg26":"CANCEL BAN",
- "mg27":"Ban Expiry",
- "mg28":"Cancel Ban Member From Group",
- "mg29":"Are you sure to cancel the ban for this member from the group ?",
- "mg30":"On pressing confirm, the cancel ban request will be sent!",
- "mg31":"Kick Member From Group",
- "mg32":"Reason For Kick",
- "mg33":"Are you sure to kick this member from the group ?",
- "mg34":"On pressing confirm, the kick request will be sent!",
- "mg35":"No Open Group Invites",
- "mg36":"Your Open Group Invites",
- "mg37":"Address or name to invite",
- "mg38":"Invite Expiry Time",
- "mg39":"All Fields Are Required",
- "mg40":"Are you sure to invite this member to the group ?",
- "mg41":"On pressing confirm, the invite request will be sent!",
- "mg42":"Group Type",
- "mg43":"Invite Expiry",
- "mg44":"Public Group",
- "mg45":"Private Group",
- "mg46":"Cancel Invite",
- "mg47":"Cancel Invite To Group",
- "mg48":"Are you sure to cancel the invite for this member ?",
- "mg49":"On pressing confirm, the cancel invite request will be sent!",
- "mg50":"Coming Soon...",
- "mg51":"Minimum 3 Characters / Maximum 32 Characters",
- "mg52":"Maximum 128 Characters"
+ "managegroup": {
+ "mg1": "Group Members",
+ "mg2": "Invite To Group",
+ "mg3": "Group Admins",
+ "mg4": "Update Group",
+ "mg5": "Close Manage Group",
+ "mg6": "BAN",
+ "mg7": "KICK",
+ "mg8": "Group ID",
+ "mg9": "Joined",
+ "mg10": "Add Group Admin",
+ "mg11": "Are you sure to add this member to admins ?",
+ "mg12": "On pressing confirm, add admin request will be sent!",
+ "mg13": "Remove Group Admin",
+ "mg14": "Remove Admin Address",
+ "mg15": "Are you sure to remove this member from admins ?",
+ "mg16": "On pressing confirm, remove admin request will be sent!",
+ "mg17": "Ban Member From Group",
+ "mg18": "Member Name",
+ "mg19": "Member Address",
+ "mg20": "How Long To Ban",
+ "mg21": "Reason For Ban",
+ "mg22": "Are you sure to ban this member from the group ?",
+ "mg23": "On pressing confirm, the ban request will be sent!",
+ "mg24": "FOREVER",
+ "mg25": "Banned Members",
+ "mg26": "CANCEL BAN",
+ "mg27": "Ban Expiry",
+ "mg28": "Cancel Ban Member From Group",
+ "mg29": "Are you sure to cancel the ban for this member from the group ?",
+ "mg30": "On pressing confirm, the cancel ban request will be sent!",
+ "mg31": "Kick Member From Group",
+ "mg32": "Reason For Kick",
+ "mg33": "Are you sure to kick this member from the group ?",
+ "mg34": "On pressing confirm, the kick request will be sent!",
+ "mg35": "No Open Group Invites",
+ "mg36": "Your Open Group Invites",
+ "mg37": "Address or name to invite",
+ "mg38": "Invite Expiry Time",
+ "mg39": "All Fields Are Required",
+ "mg40": "Are you sure to invite this member to the group ?",
+ "mg41": "On pressing confirm, the invite request will be sent!",
+ "mg42": "Group Type",
+ "mg43": "Invite Expiry",
+ "mg44": "Public Group",
+ "mg45": "Private Group",
+ "mg46": "Cancel Invite",
+ "mg47": "Cancel Invite To Group",
+ "mg48": "Are you sure to cancel the invite for this member ?",
+ "mg49": "On pressing confirm, the cancel invite request will be sent!",
+ "mg50": "Coming Soon...",
+ "mg51": "Minimum 3 Characters / Maximum 32 Characters",
+ "mg52": "Maximum 128 Characters"
}
}
\ No newline at end of file
diff --git a/qortal-ui-plugins/package.json b/qortal-ui-plugins/package.json
index 4301c32a..4e813ff4 100644
--- a/qortal-ui-plugins/package.json
+++ b/qortal-ui-plugins/package.json
@@ -47,8 +47,8 @@
"@polymer/paper-slider": "3.0.1",
"@polymer/paper-spinner": "3.0.2",
"@polymer/paper-tooltip": "3.0.1",
- "@vaadin/horizontal-layout": "23.2.5",
- "@vaadin/tabs": "23.2.5",
+ "@vaadin/horizontal-layout": "23.3.2",
+ "@vaadin/tabs": "23.3.2",
"@rollup/plugin-alias": "4.0.2",
"@rollup/plugin-babel": "6.0.3",
"@rollup/plugin-commonjs": "24.0.0",
@@ -75,4 +75,4 @@
"engines": {
"node": ">=16.17.1"
}
-}
+}
\ No newline at end of file
diff --git a/qortal-ui-plugins/plugins/core/components/ChatPage.js b/qortal-ui-plugins/plugins/core/components/ChatPage.js
index 544db34f..a50cd34c 100644
--- a/qortal-ui-plugins/plugins/core/components/ChatPage.js
+++ b/qortal-ui-plugins/plugins/core/components/ChatPage.js
@@ -1171,22 +1171,20 @@ class ChatPage extends LitElement {