diff options
| author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2021-05-15 16:30:33 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2021-05-15 16:30:33 -0400 | 
| commit | 2c752fd89d3427da855704406e34c9458d33e832 (patch) | |
| tree | 1af110210e39fccc008ef6c31940303a38ddc60a /ext/js/pages | |
| parent | bc6fb4e7d742b40bb18965f5aa3e8a1a867b068e (diff) | |
Popup action search (#1678)
* Set up search page in the action popup
* Fix a style causing incorrect overflow
* Fix error when trying to take a screenshot
* Fix popup size on Firefox
Diffstat (limited to 'ext/js/pages')
| -rw-r--r-- | ext/js/pages/action-popup-main.js | 15 | 
1 files changed, 13 insertions, 2 deletions
| diff --git a/ext/js/pages/action-popup-main.js b/ext/js/pages/action-popup-main.js index 4934802b..b3198676 100644 --- a/ext/js/pages/action-popup-main.js +++ b/ext/js/pages/action-popup-main.js @@ -31,7 +31,7 @@ class DisplayController {          this._showExtensionInfo(manifest);          this._setupEnvironment(); -        this._setupButtonEvents('.action-open-search', 'openSearchPage', chrome.runtime.getURL('/search.html')); +        this._setupButtonEvents('.action-open-search', 'openSearchPage', chrome.runtime.getURL('/search.html'), this._onSearchClick.bind(this));          this._setupButtonEvents('.action-open-info', 'openInfoPage', chrome.runtime.getURL('/info.html'));          const optionsFull = await yomichan.api.optionsGetFull(); @@ -60,6 +60,13 @@ class DisplayController {      // Private +    _onSearchClick(e) { +        if (!e.shiftKey) { return; } +        e.preventDefault(); +        location.href = '/search.html?action-popup=true'; +        return false; +    } +      _showExtensionInfo(manifest) {          const node = document.getElementById('extension-info');          if (node === null) { return; } @@ -67,12 +74,16 @@ class DisplayController {          node.textContent = `${manifest.name} v${manifest.version}`;      } -    _setupButtonEvents(selector, command, url) { +    _setupButtonEvents(selector, command, url, customHandler) {          const nodes = document.querySelectorAll(selector);          for (const node of nodes) {              if (typeof command === 'string') {                  node.addEventListener('click', (e) => {                      if (e.button !== 0) { return; } +                    if (typeof customHandler === 'function') { +                        const result = customHandler(e); +                        if (typeof result !== 'undefined') { return; } +                    }                      yomichan.api.commandExec(command, {mode: e.ctrlKey ? 'newTab' : 'existingOrNewTab'});                      e.preventDefault();                  }, false); |