diff --git a/src/Aiursoft.ChessServer/wwwroot/scripts/chat.js b/src/Aiursoft.ChessServer/wwwroot/scripts/chat.js
index 5c3935b..8f9f4d1 100644
--- a/src/Aiursoft.ChessServer/wwwroot/scripts/chat.js
+++ b/src/Aiursoft.ChessServer/wwwroot/scripts/chat.js
@@ -2,11 +2,16 @@
const messagesBox = document.getElementById("messages-box");
const inputMessage = document.getElementById("inputMessage");
const chatSendForm = document.getElementById("chatSendForm");
+ const messageTip = document.getElementById("newMessageTip");
const wsScheme = window.location.protocol === "https:" ? "wss://" : "ws://";
const socket = new WebSocket(
`${wsScheme}${window.location.host}/chats/${gameId}.ws?playerId=${playerId}`
);
+ messageTip.querySelector("[data-close]").addEventListener("click", () => {
+ messageTip.setAttribute("hidden", true);
+ });
+
chatSendForm.onsubmit = function sendNewMessage(e) {
e.preventDefault();
let msg = inputMessage.value;
@@ -34,13 +39,23 @@
function appendOpponentNewMessage(message, senderNickname) {
let template = document.getElementById("messageFromOpponent");
- appendNewMessage(message, senderNickname, template);
+ let msg = appendNewMessage(message, senderNickname, template);
+
+ // appears new message tpi
+ const MEDIUM_BREAKPOINT = 768;
+ if (
+ window.innerWidth < MEDIUM_BREAKPOINT &&
+ msg.getBoundingClientRect().bottom > window.innerHeight
+ ) {
+ messageTip.children[0].textContent = `${senderNickname}: ${message}`;
+ messageTip.removeAttribute("hidden");
+ }
scrollToNewestMessage();
}
function appendNewMessage(message, senderNickname, template) {
- let t = template.content;
+ let t = template.content.cloneNode(true);
let txt = t.querySelector("[data-message]");
txt.textContent = message;
let nickname = t.querySelector("[data-message-from]");
@@ -55,8 +70,10 @@
nickname.textContent = lastSender === senderNickname ? "" : senderNickname;
- let clone = document.importNode(t, true);
- messagesBox.appendChild(clone);
+ const msgEle = t.children[0];
+ messagesBox.appendChild(msgEle);
+
+ return msgEle;
}
socket.onmessage = function (event) {