diff --git a/src/js/calculator.js b/src/js/calculator.js index b2f2f5b..f8090ed 100644 --- a/src/js/calculator.js +++ b/src/js/calculator.js @@ -689,41 +689,32 @@ const Calculator = { await this.open(); } - // Close-Event abfangen: WidgetManager.close() ueberschreiben - const origClose = WidgetManager.close.bind(WidgetManager); + // Widget-Lifecycle-Events const self = this; - WidgetManager.close = function(id) { - origClose(id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:close', (e) => { + if (e.detail.id === self.WIDGET_ID) { self.onClose(); } - }; + }); - // Minimize-Event abfangen - const origMinimize = WidgetManager.minimize.bind(WidgetManager); - WidgetManager.minimize = async function(id) { - await origMinimize(id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:minimize', (e) => { + if (e.detail.id === self.WIDGET_ID) { self._isOpen = false; - await self.save(); + self.save(); } - }; + }); - // Open-Event abfangen - const origOpen = WidgetManager.openWidget.bind(WidgetManager); - WidgetManager.openWidget = async function(id) { - await origOpen(id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:open', (e) => { + if (e.detail.id === self.WIDGET_ID) { self._isOpen = true; - // Body neu rendern (war durch minimize entfernt) const body = WidgetManager.getBody(self.WIDGET_ID); if (body && body.children.length === 0) { self.renderBody(body); } const entry = WidgetManager._widgets.get(self.WIDGET_ID); if (entry) self._bindKeyboard(entry.el); - await self.save(); + self.save(); } - }; + }); } }; diff --git a/src/js/image-ref.js b/src/js/image-ref.js index 93a2211..2f52433 100644 --- a/src/js/image-ref.js +++ b/src/js/image-ref.js @@ -460,41 +460,32 @@ const ImageRef = { }); } - // Close-Event abfangen + // Widget-Lifecycle-Events const self = this; - const prevClose = WidgetManager.close; - WidgetManager.close = function(id) { - prevClose.call(WidgetManager, id); - // Pruefen ob es ein Image-Widget ist - const isImage = self._images.some(img => img.id === id); + WidgetManager.on('widget:close', (e) => { + const isImage = self._images.some(img => img.id === e.detail.id); if (isImage) { - self.onClose(id); + self.onClose(e.detail.id); } - }; + }); - // Minimize-Event abfangen - const prevMinimize = WidgetManager.minimize; - WidgetManager.minimize = async function(id) { - await prevMinimize.call(WidgetManager, id); - const isImage = self._images.some(img => img.id === id); + WidgetManager.on('widget:minimize', (e) => { + const isImage = self._images.some(img => img.id === e.detail.id); if (isImage) { - await self.save(); + self.save(); } - }; + }); - // Open-Event abfangen - const prevOpen = WidgetManager.openWidget; - WidgetManager.openWidget = async function(id) { - await prevOpen.call(WidgetManager, id); - const imgData = self._images.find(img => img.id === id); + WidgetManager.on('widget:open', (e) => { + const imgData = self._images.find(img => img.id === e.detail.id); if (imgData) { - const body = WidgetManager.getBody(id); + const body = WidgetManager.getBody(e.detail.id); if (body && body.children.length === 0) { - const dataUrl = self._getSessionImage(id); + const dataUrl = self._getSessionImage(e.detail.id); self.renderBody(imgData, body, dataUrl); } - await self.save(); + self.save(); } - }; + }); } }; diff --git a/src/js/timer.js b/src/js/timer.js index 34ab404..8cb1616 100644 --- a/src/js/timer.js +++ b/src/js/timer.js @@ -720,32 +720,23 @@ const Timer = { await this.open(); } - // Close-Event abfangen - const origClose = WidgetManager.close.bind(WidgetManager); + // Widget-Lifecycle-Events const self = this; - const prevClose = WidgetManager.close; - WidgetManager.close = function(id) { - prevClose.call(WidgetManager, id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:close', (e) => { + if (e.detail.id === self.WIDGET_ID) { self.onClose(); } - }; + }); - // Minimize-Event abfangen - const prevMinimize = WidgetManager.minimize; - WidgetManager.minimize = async function(id) { - await prevMinimize.call(WidgetManager, id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:minimize', (e) => { + if (e.detail.id === self.WIDGET_ID) { self._isOpen = false; - await self.save(); + self.save(); } - }; + }); - // Open-Event abfangen - const prevOpen = WidgetManager.openWidget; - WidgetManager.openWidget = async function(id) { - await prevOpen.call(WidgetManager, id); - if (id === self.WIDGET_ID) { + WidgetManager.on('widget:open', (e) => { + if (e.detail.id === self.WIDGET_ID) { self._isOpen = true; const body = WidgetManager.getBody(self.WIDGET_ID); if (body && body.children.length === 0) { @@ -753,8 +744,8 @@ const Timer = { } const entry = WidgetManager._widgets.get(self.WIDGET_ID); if (entry) self._bindKeyboard(entry.el); - await self.save(); + self.save(); } - }; + }); } };