diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-16 21:36:10 -0400 | 
|---|---|---|
| committer | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2019-10-17 18:40:43 -0400 | 
| commit | 598cd32946c8e10e5aa3fcec26e3fc40af44bddf (patch) | |
| tree | cd030ed1d5f60aaba15c3a1c2bec284154bfc038 /ext/fg/js | |
| parent | 779b4af590b7a9030de9da1005bb3d8f79c3c5d0 (diff) | |
Update *show* APIs to unified showContent and setContent
Diffstat (limited to 'ext/fg/js')
| -rw-r--r-- | ext/fg/js/float.js | 19 | ||||
| -rw-r--r-- | ext/fg/js/frontend.js | 17 | ||||
| -rw-r--r-- | ext/fg/js/popup-proxy-host.js | 23 | ||||
| -rw-r--r-- | ext/fg/js/popup-proxy.js | 16 | ||||
| -rw-r--r-- | ext/fg/js/popup.js | 25 | 
5 files changed, 24 insertions, 76 deletions
| diff --git a/ext/fg/js/float.js b/ext/fg/js/float.js index 4b3cd848..089c9422 100644 --- a/ext/fg/js/float.js +++ b/ext/fg/js/float.js @@ -32,25 +32,12 @@ class DisplayFloat extends Display {      onError(error) {          if (window.yomichan_orphaned) { -            this.onOrphaned(); +            this.setContentOrphaned();          } else {              logError(error, true);          }      } -    onOrphaned() { -        const definitions = document.querySelector('#definitions'); -        const errorOrphaned = document.querySelector('#error-orphaned'); - -        if (definitions !== null) { -            definitions.style.setProperty('display', 'none', 'important'); -        } - -        if (errorOrphaned !== null) { -            errorOrphaned.style.setProperty('display', 'block', 'important'); -        } -    } -      onSearchClear() {          window.parent.postMessage('popupClose', '*');      } @@ -121,10 +108,8 @@ DisplayFloat.onKeyDownHandlers = {  };  DisplayFloat.messageHandlers = { -    termsShow: (self, {definitions, context}) => self.termsShow(definitions, context), -    kanjiShow: (self, {definitions, context}) => self.kanjiShow(definitions, context), +    setContent: (self, {type, details}) => self.setContent(type, details),      clearAutoPlayTimer: (self) => self.clearAutoPlayTimer(), -    orphaned: (self) => self.onOrphaned(),      setCustomCss: (self, {css}) => self.setCustomCss(css),      initialize: (self, {options, popupInfo, url, childrenSupported}) => self.initialize(options, popupInfo, url, childrenSupported)  }; diff --git a/ext/fg/js/frontend.js b/ext/fg/js/frontend.js index 7ea737d7..eddbf9cc 100644 --- a/ext/fg/js/frontend.js +++ b/ext/fg/js/frontend.js @@ -332,9 +332,10 @@ class Frontend {          } catch (e) {              if (window.yomichan_orphaned) {                  if (textSource && this.options.scanning.modifier !== 'none') { -                    this.lastShowPromise = this.popup.showOrphaned( +                    this.lastShowPromise = this.popup.showContent(                          textSource.getRect(), -                        textSource.getWritingMode() +                        textSource.getWritingMode(), +                        'orphaned'                      );                  }              } else { @@ -370,11 +371,11 @@ class Frontend {          const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);          const url = window.location.href; -        this.lastShowPromise = this.popup.termsShow( +        this.lastShowPromise = this.popup.showContent(              textSource.getRect(),              textSource.getWritingMode(), -            definitions, -            {sentence, url, focus} +            'terms', +            {definitions, context: {sentence, url, focus}}          );          this.textSourceLast = textSource; @@ -400,11 +401,11 @@ class Frontend {          const sentence = docSentenceExtract(textSource, this.options.anki.sentenceExt);          const url = window.location.href; -        this.lastShowPromise = this.popup.kanjiShow( +        this.lastShowPromise = this.popup.showContent(              textSource.getRect(),              textSource.getWritingMode(), -            definitions, -            {sentence, url, focus} +            'kanji', +            {definitions, context: {sentence, url, focus}}          );          this.textSourceLast = textSource; diff --git a/ext/fg/js/popup-proxy-host.js b/ext/fg/js/popup-proxy-host.js index f97d44ac..dcdce604 100644 --- a/ext/fg/js/popup-proxy-host.js +++ b/ext/fg/js/popup-proxy-host.js @@ -39,12 +39,10 @@ class PopupProxyHost {          this.apiReceiver = new FrontendApiReceiver(`popup-proxy-host#${frameId}`, {              createNestedPopup: ({parentId}) => this.createNestedPopup(parentId),              setOptions: ({id, options}) => this.setOptions(id, options), -            showOrphaned: ({id, elementRect}) => this.showOrphaned(id, elementRect),              hide: ({id, changeFocus}) => this.hide(id, changeFocus),              setVisibleOverride: ({id, visible}) => this.setVisibleOverride(id, visible),              containsPoint: ({id, x, y}) => this.containsPoint(id, x, y), -            termsShow: ({id, elementRect, writingMode, definitions, context}) => this.termsShow(id, elementRect, writingMode, definitions, context), -            kanjiShow: ({id, elementRect, writingMode, definitions, context}) => this.kanjiShow(id, elementRect, writingMode, definitions, context), +            showContent: ({id, elementRect, writingMode, type, details}) => this.showContent(id, elementRect, writingMode, type, details),              setCustomCss: ({id, css}) => this.setCustomCss(id, css),              clearAutoPlayTimer: ({id}) => this.clearAutoPlayTimer(id)          }); @@ -94,12 +92,6 @@ class PopupProxyHost {          return await popup.setOptions(options);      } -    async showOrphaned(id, elementRect) { -        const popup = this.getPopup(id); -        elementRect = this.jsonRectToDOMRect(popup, elementRect); -        return await popup.showOrphaned(elementRect); -    } -      async hide(id, changeFocus) {          const popup = this.getPopup(id);          return popup.hide(changeFocus); @@ -115,18 +107,11 @@ class PopupProxyHost {          return await popup.containsPoint(x, y);      } -    async termsShow(id, elementRect, writingMode, definitions, context) { -        const popup = this.getPopup(id); -        elementRect = this.jsonRectToDOMRect(popup, elementRect); -        if (!PopupProxyHost.popupCanShow(popup)) { return false; } -        return await popup.termsShow(elementRect, writingMode, definitions, context); -    } - -    async kanjiShow(id, elementRect, writingMode, definitions, context) { +    async showContent(id, elementRect, writingMode, type, details) {          const popup = this.getPopup(id);          elementRect = this.jsonRectToDOMRect(popup, elementRect); -        if (!PopupProxyHost.popupCanShow(popup)) { return false; } -        return await popup.kanjiShow(elementRect, writingMode, definitions, context); +        if (!PopupProxyHost.popupCanShow(popup)) { return Promise.resolve(false); } +        return await popup.showContent(elementRect, writingMode, type, details);      }      async setCustomCss(id, css) { diff --git a/ext/fg/js/popup-proxy.js b/ext/fg/js/popup-proxy.js index 6ea94b6a..53b68872 100644 --- a/ext/fg/js/popup-proxy.js +++ b/ext/fg/js/popup-proxy.js @@ -51,12 +51,6 @@ class PopupProxy {          return await this.invokeHostApi('setOptions', {id, options});      } -    async showOrphaned(elementRect) { -        const id = await this.getPopupId(); -        elementRect = PopupProxy.DOMRectToJson(elementRect); -        return await this.invokeHostApi('showOrphaned', {id, elementRect}); -    } -      async hide(changeFocus) {          if (this.id === null) {              return; @@ -76,16 +70,10 @@ class PopupProxy {          return await this.invokeHostApi('containsPoint', {id: this.id, x, y});      } -    async termsShow(elementRect, writingMode, definitions, context) { -        const id = await this.getPopupId(); -        elementRect = PopupProxy.DOMRectToJson(elementRect); -        return await this.invokeHostApi('termsShow', {id, elementRect, writingMode, definitions, context}); -    } - -    async kanjiShow(elementRect, writingMode, definitions, context) { +    async showContent(elementRect, writingMode, type=null, details=null) {          const id = await this.getPopupId();          elementRect = PopupProxy.DOMRectToJson(elementRect); -        return await this.invokeHostApi('kanjiShow', {id, elementRect, writingMode, definitions, context}); +        return await this.invokeHostApi('showContent', {id, elementRect, writingMode, type, details});      }      async setCustomCss(css) { diff --git a/ext/fg/js/popup.js b/ext/fg/js/popup.js index 2a9670fc..6c24c0ce 100644 --- a/ext/fg/js/popup.js +++ b/ext/fg/js/popup.js @@ -90,6 +90,13 @@ class Popup {          this.updateTheme();      } +    async showContent(elementRect, writingMode, type=null, details=null) { +        if (!this.isInitialized()) { return; } +        await this.show(elementRect, writingMode); +        if (type === null) { return; } +        this.invokeApi('setContent', {type, details}); +    } +      async show(elementRect, writingMode) {          await this.inject(); @@ -218,12 +225,6 @@ class Popup {          return [position, size, after];      } -    async showOrphaned(elementRect, writingMode) { -        if (!this.isInitialized()) { return; } -        await this.show(elementRect, writingMode); -        this.invokeApi('orphaned'); -    } -      hide(changeFocus) {          if (!this.isVisible()) {              return; @@ -320,18 +321,6 @@ class Popup {          return false;      } -    async termsShow(elementRect, writingMode, definitions, context) { -        if (!this.isInitialized()) { return; } -        await this.show(elementRect, writingMode); -        this.invokeApi('termsShow', {definitions, context}); -    } - -    async kanjiShow(elementRect, writingMode, definitions, context) { -        if (!this.isInitialized()) { return; } -        await this.show(elementRect, writingMode); -        this.invokeApi('kanjiShow', {definitions, context}); -    } -      async setCustomCss(css) {          this.invokeApi('setCustomCss', {css});      } |