Moved replay to custom event
This commit is contained in:
parent
70eebefac7
commit
3e2dd7ea04
@ -9,6 +9,13 @@ import {app} from "./app.js";
|
|||||||
|
|
||||||
const LONG_TIME = 1000 * 60 * 20
|
const LONG_TIME = 1000 * 60 * 20
|
||||||
|
|
||||||
|
export class ReplyEvent extends Event {
|
||||||
|
constructor(messageTextTarget) {
|
||||||
|
super('reply', { bubbles: true, composed: true });
|
||||||
|
this.messageTextTarget = messageTextTarget;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
class MessageElement extends HTMLElement {
|
class MessageElement extends HTMLElement {
|
||||||
// static observedAttributes = ['data-uid', 'data-color', 'data-channel_uid', 'data-user_nick', 'data-created_at', 'data-user_uid'];
|
// static observedAttributes = ['data-uid', 'data-color', 'data-channel_uid', 'data-user_nick', 'data-created_at', 'data-user_uid'];
|
||||||
|
|
||||||
@ -51,6 +58,12 @@ class MessageElement extends HTMLElement {
|
|||||||
}
|
}
|
||||||
|
|
||||||
this.timeDiv = this.querySelector('.time span');
|
this.timeDiv = this.querySelector('.time span');
|
||||||
|
this.replyDiv = this.querySelector('.time a');
|
||||||
|
|
||||||
|
this.replyDiv.addEventListener('click', (e) => {
|
||||||
|
e.preventDefault();
|
||||||
|
this.dispatchEvent(new ReplyEvent(this.messageDiv));
|
||||||
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!this.siblingGenerated && this.nextElementSibling) {
|
if (!this.siblingGenerated && this.nextElementSibling) {
|
||||||
|
@ -143,15 +143,9 @@ function replyMessage(message) {
|
|||||||
chatInputField.focus();
|
chatInputField.focus();
|
||||||
}
|
}
|
||||||
|
|
||||||
messagesContainer.addEventListener("click", (e) => {
|
messagesContainer.addEventListener("reply", (e) => {
|
||||||
if (e.target.tagName === "A" && e.target.getAttribute("href") === "#reply") {
|
const messageText = e.messageTextTarget.textContent.trim();
|
||||||
e.preventDefault();
|
replyMessage(messageText);
|
||||||
const messageElement = e.target.closest("chat-message");
|
|
||||||
if (messageElement) {
|
|
||||||
const messageText = messageElement.querySelector(".text").textContent.trim();
|
|
||||||
replyMessage(messageText);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
})
|
})
|
||||||
|
|
||||||
// --- Mention helpers ---
|
// --- Mention helpers ---
|
||||||
|
Loading…
Reference in New Issue
Block a user