From 4c3659f85754ee410be39b2a207f6d78249f0c0a Mon Sep 17 00:00:00 2001 From: Jiiks Date: Wed, 22 Aug 2018 18:39:09 +0300 Subject: [PATCH] add contextmenu patch removal --- client/src/builtin/EmoteModule.js | 3 ++- client/src/ui/contextmenus.js | 10 ++++++++-- 2 files changed, 10 insertions(+), 3 deletions(-) diff --git a/client/src/builtin/EmoteModule.js b/client/src/builtin/EmoteModule.js index 0a189e49..502fd618 100644 --- a/client/src/builtin/EmoteModule.js +++ b/client/src/builtin/EmoteModule.js @@ -56,7 +56,7 @@ export default new class EmoteModule extends BuiltinModule { GlobalAc.add(';', this); // Add favourite button to context menu - DiscordContextMenu.add(target => [ + this.removeFavCm = DiscordContextMenu.add('BD:EmoteModule:FavCM', target => [ { text: 'Favourite', type: 'toggle', @@ -96,6 +96,7 @@ export default new class EmoteModule extends BuiltinModule { for (const patch of Patcher.getPatchesByCaller('BD:EMOTEMODULE')) patch.unpatch(); // Remove ; prefix from autocomplete GlobalAc.remove(';'); + if (this.removeFavCm) this.removeFavCm(); } /** diff --git a/client/src/ui/contextmenus.js b/client/src/ui/contextmenus.js index aec5640e..f6bf7670 100644 --- a/client/src/ui/contextmenus.js +++ b/client/src/ui/contextmenus.js @@ -35,12 +35,18 @@ export class DiscordContextMenu { /** * add items to Discord context menu + * @param {any} id unique id for group * @param {any} items items to add * @param {Function} [filter] filter function for target filtering */ - static add(items, filter) { + static add(id, items, filter) { if (!this.patched) this.patch(); - this.menus.push({ items, filter }); + this.menus.push({ id, items, filter }); + return () => this.remove(id); + } + + static remove(id) { + this._menus = this._menus.filter(menu => menu.id !== id); } static get menus() {