diff --git a/src/snek/static/message-list.js b/src/snek/static/message-list.js index 26f0999..506ed52 100644 --- a/src/snek/static/message-list.js +++ b/src/snek/static/message-list.js @@ -5,64 +5,65 @@ // The code seems to rely on some external dependencies like 'models.Message', 'app', and 'Schedule'. These should be imported or defined elsewhere in your application. // MIT License: This is free software. Permission is granted to use, copy, modify, and/or distribute this software for any purpose with or without fee. The software is provided "as is" without any warranty. -import {app} from "./app.js"; +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; + constructor(messageTextTarget) { + super('reply', { bubbles: true, composed: true }); + this.messageTextTarget = messageTextTarget; - const newMessage = messageTextTarget.cloneNode(true); - newMessage.style.maxHeight = "0" - messageTextTarget.parentElement.insertBefore(newMessage, messageTextTarget); + // Clone and sanitize message node to text-only reply + const newMessage = messageTextTarget.cloneNode(true); + newMessage.style.maxHeight = "0"; + messageTextTarget.parentElement.insertBefore(newMessage, messageTextTarget); - newMessage.querySelectorAll('.embed-url-link').forEach(link => { - link.remove() - }) + // Remove all .embed-url-link + newMessage.querySelectorAll('.embed-url-link').forEach(link => link.remove()); - newMessage.querySelectorAll('picture').forEach(picture => { - const img = picture.querySelector('img'); - if (img) { - picture.replaceWith(img); - } - }) + // Replace with their + newMessage.querySelectorAll('picture').forEach(picture => { + const img = picture.querySelector('img'); + if (img) picture.replaceWith(img); + }); - newMessage.querySelectorAll('img').forEach(img => { - const src = img.src || img.currentSrc; - img.replaceWith(document.createTextNode(src)); - }) + // Replace with just their src + newMessage.querySelectorAll('img').forEach(img => { + const src = img.src || img.currentSrc; + img.replaceWith(document.createTextNode(src)); + }); - newMessage.querySelectorAll('iframe').forEach(iframe => { - const src = iframe.src || iframe.currentSrc; - iframe.replaceWith(document.createTextNode(src)); - }) + // Replace