From 00bc665c3ab95d34aacb7370172b31359bb02899 Mon Sep 17 00:00:00 2001 From: Max <m.giller.dev@gmail.com> Date: Mon, 4 Oct 2021 22:20:57 +0200 Subject: [PATCH] Added more hooks to make setting up interactions easier --- editor/js/tools/menus/collectmenu.js | 8 ++++---- editor/js/tools/menus/toolmenu.js | 16 ++++++++++++++++ 2 files changed, 20 insertions(+), 4 deletions(-) diff --git a/editor/js/tools/menus/collectmenu.js b/editor/js/tools/menus/collectmenu.js index ca18196..27295d6 100644 --- a/editor/js/tools/menus/collectmenu.js +++ b/editor/js/tools/menus/collectmenu.js @@ -12,7 +12,6 @@ const DOM_LIST_ITEM = "li"; export class CollectMenu extends ToolMenu { constructor() { super(); - this.hooked = false; } hookClearButton() { @@ -22,12 +21,13 @@ export class CollectMenu extends ToolMenu { }); } - afterSet(key, value) { - if (this.hooked === false) { + onMenuShow(initial) { + if (initial) { this.hookClearButton(); - this.hooked = true; } + } + afterSet(key, value) { if (key === COLLECTION_KEY) { this.fillDomList(SELECTED_ITEMS_ID, value, this.itemListRenderer); } diff --git a/editor/js/tools/menus/toolmenu.js b/editor/js/tools/menus/toolmenu.js index 73c2ac7..af60042 100644 --- a/editor/js/tools/menus/toolmenu.js +++ b/editor/js/tools/menus/toolmenu.js @@ -4,6 +4,7 @@ export default class ToolMenu { constructor() { this.warnings = false; this.values = {}; + this.initialShow = true; } loadTool(tool) { @@ -12,11 +13,26 @@ export default class ToolMenu { } show() { + this.onMenuShow(this.initialShow); + this.initialShow = false; this.getMenu().removeClass("hidden"); } hide() { this.getMenu().addClass("hidden"); + this.onMenuHide(); + } + + onMenuShow(initial) { + if (this.warnings) { + console.warn('Method "onMenuShow" not implemented.'); + } + } + + onMenuHide() { + if (this.warnings) { + console.warn('Method "onMenuHide" not implemented.'); + } } beforeGet(key) { -- GitLab