diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-07-24 17:34:53 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-07-24 17:34:53 -0400 | 
| commit | e493cbc998eeee5d3c368287e5c5900c4821bc9d (patch) | |
| tree | 955e09e9f64116178ec98cfed736434172e0dc75 /ext/fg/js | |
| parent | 3754c920410e90fc6b98aadc9f0dbe60dfa6a14d (diff) | |
Simplify Popup.showContent API to use only two details arguments (#684)
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/frontend.js | 16 | ||||
| -rw-r--r-- | ext/fg/js/popup-factory.js | 11 | ||||
| -rw-r--r-- | ext/fg/js/popup-proxy.js | 17 | ||||
| -rw-r--r-- | ext/fg/js/popup.js | 16 | 
4 files changed, 38 insertions, 22 deletions
| diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index bd64f1ac..49cf4ca6 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -432,13 +432,17 @@ class Frontend {      }      _showPopupContent(textSource, optionsContext, type=null, details=null) { -        const context = {optionsContext, source: this._id};          this._lastShowPromise = this._popup.showContent( -            textSource.getRect(), -            textSource.getWritingMode(), -            type, -            details, -            context +            { +                source: this._id, +                optionsContext, +                elementRect: textSource.getRect(), +                writingMode: textSource.getWritingMode() +            }, +            { +                type, +                details +            }          );          this._lastShowPromise.catch((error) => {              if (yomichan.isExtensionUnloaded) { return; } diff --git a/ext/fg/js/popup-factory.js b/ext/fg/js/popup-factory.js index c48db51a..1dc7d61e 100644 --- a/ext/fg/js/popup-factory.js +++ b/ext/fg/js/popup-factory.js @@ -124,11 +124,16 @@ class PopupFactory {          return await popup.containsPoint(x, y);      } -    async _onApiShowContent({id, elementRect, writingMode, type, details, context}) { +    async _onApiShowContent({id, details, displayDetails}) {          const popup = this._getPopup(id); -        elementRect = this._convertJsonRectToDOMRect(popup, elementRect);          if (!this._popupCanShow(popup)) { return; } -        return await popup.showContent(elementRect, writingMode, type, details, context); + +        const {elementRect} = details; +        if (typeof elementRect !== 'undefined') { +            details.elementRect = this._convertJsonRectToDOMRect(popup, elementRect); +        } + +        return await popup.showContent(details, displayDetails);      }      _onApiSetCustomCss({id, css}) { diff --git a/ext/fg/js/popup-proxy.js b/ext/fg/js/popup-proxy.js index 09c184db..d910d30c 100644 --- a/ext/fg/js/popup-proxy.js +++ b/ext/fg/js/popup-proxy.js @@ -88,14 +88,17 @@ class PopupProxy extends EventDispatcher {          return await this._invoke('containsPoint', {id: this._id, x, y});      } -    async showContent(elementRect, writingMode, type, details, context) { -        let {x, y, width, height} = elementRect; -        if (this._frameOffsetForwarder !== null) { -            await this._updateFrameOffset(); -            [x, y] = this._applyFrameOffset(x, y); +    async showContent(details, displayDetails) { +        const {elementRect} = details; +        if (typeof elementRect !== 'undefined') { +            let {x, y, width, height} = elementRect; +            if (this._frameOffsetForwarder !== null) { +                await this._updateFrameOffset(); +                [x, y] = this._applyFrameOffset(x, y); +            } +            details.elementRect = {x, y, width, height};          } -        elementRect = {x, y, width, height}; -        return await this._invoke('showContent', {id: this._id, elementRect, writingMode, type, details, context}); +        return await this._invoke('showContent', {id: this._id, details, displayDetails});      }      setCustomCss(css) { diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index 35e66044..6f2f0a88 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -133,17 +133,21 @@ class Popup {          return false;      } -    async showContent(elementRect, writingMode, type, details, context) { +    async showContent(details, displayDetails) {          if (this._options === null) { throw new Error('Options not assigned'); } -        const {optionsContext, source} = context; -        if (source !== this._previousOptionsContextSource) { +        const {source, optionsContext, elementRect, writingMode} = details; +        if (typeof source !== 'undefined' && source !== this._previousOptionsContextSource) {              await this.setOptionsContext(optionsContext, source);          } -        await this._show(elementRect, writingMode); -        if (type === null) { return; } -        this._invokeApi('setContent', {type, details}); +        if (typeof elementRect !== 'undefined' && typeof writingMode !== 'undefined') { +            await this._show(elementRect, writingMode); +        } + +        if (displayDetails !== null) { +            this._invokeApi('setContent', {type: displayDetails.type, details: displayDetails.details}); +        }      }      setCustomCss(css) { |