Description
The delete button in chat removes messages with no confirmation, nor any option to return them. This is a small safety measure - adds a simple confirmation on trying to delete.
Installation
(For instructions how to install userscripts: see the tag wiki here)
Code:
// ==UserScript==
// @name SE chat: Confirm message deletion
// @description Adds a confirmation before deleting a message to prevent accidents
// @author VLAZ
// @grant none
// @inject-into page
// @match https://chat.stackoverflow.com/*
// @match https://chat.stackexchange.com/*
// @match https://chat.meta.stackexchange.com/*
// @namespace https://github.com/PurpleMagick/
// @run-at document-end
// @version 1.0.0
// ==/UserScript==
(function(){
// keep reference to the original function
const original = messageActionById;
const caseInsensitiveCollator = new Intl.Collator("en", { sensitivity: "base"});
const override = function(_, action) {
// only act on delete
// (also, case-insensitive just in case. Don't know if chat tries to uppercase it some times)
if (caseInsensitiveCollator.compare("delete", action) === 0) {
const result = confirm("Are you sure you want to delete?");
//exit with no action on negative or closure
if (!result)
return;
}
// run original function to apply the deletion
return original.apply(this, arguments);
};
messageActionById = override;
})();