diff options
Diffstat (limited to 'ext/js/pages/action-popup-main.js')
| -rw-r--r-- | ext/js/pages/action-popup-main.js | 34 | 
1 files changed, 20 insertions, 14 deletions
diff --git a/ext/js/pages/action-popup-main.js b/ext/js/pages/action-popup-main.js index 86201e83..6d2c85ab 100644 --- a/ext/js/pages/action-popup-main.js +++ b/ext/js/pages/action-popup-main.js @@ -16,13 +16,18 @@   * along with this program.  If not, see <https://www.gnu.org/licenses/>.   */ +import {Application} from '../application.js';  import {getAllPermissions, hasRequiredPermissionsForOptions} from '../data/permissions-util.js';  import {querySelectorNotNull} from '../dom/query-selector.js';  import {HotkeyHelpController} from '../input/hotkey-help-controller.js'; -import {yomitan} from '../yomitan.js';  class DisplayController { -    constructor() { +    /** +     * @param {import('../comm/api.js').API} api +     */ +    constructor(api) { +        /** @type {import('../comm/api.js').API} */ +        this._api = api;          /** @type {?import('settings').Options} */          this._optionsFull = null;      } @@ -36,7 +41,7 @@ class DisplayController {          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 yomitan.api.optionsGetFull(); +        const optionsFull = await this._api.optionsGetFull();          this._optionsFull = optionsFull;          this._setupHotkeys(); @@ -108,7 +113,7 @@ class DisplayController {                          const result = customHandler(e);                          if (typeof result !== 'undefined') { return; }                      } -                    yomitan.api.commandExec(command, {mode: e.ctrlKey ? 'newTab' : 'existingOrNewTab'}); +                    this._api.commandExec(command, {mode: e.ctrlKey ? 'newTab' : 'existingOrNewTab'});                      e.preventDefault();                  };                  /** @@ -116,7 +121,7 @@ class DisplayController {                   */                  const onAuxClick = (e) => {                      if (e.button !== 1) { return; } -                    yomitan.api.commandExec(command, {mode: 'newTab'}); +                    this._api.commandExec(command, {mode: 'newTab'});                      e.preventDefault();                  };                  node.addEventListener('click', onClick, false); @@ -180,7 +185,7 @@ class DisplayController {       */      _setupOptions({options}) {          const extensionEnabled = options.general.enable; -        const onToggleChanged = () => yomitan.api.commandExec('toggleTextScanning'); +        const onToggleChanged = () => this._api.commandExec('toggleTextScanning');          for (const toggle of /** @type {NodeListOf<HTMLInputElement>} */ (document.querySelectorAll('#enable-search,#enable-search2'))) {              toggle.checked = extensionEnabled;              toggle.addEventListener('change', onToggleChanged, false); @@ -192,7 +197,7 @@ class DisplayController {      /** */      async _setupHotkeys() {          const hotkeyHelpController = new HotkeyHelpController(); -        await hotkeyHelpController.prepare(); +        await hotkeyHelpController.prepare(this._api);          const {profiles, profileCurrent} = /** @type {import('settings').Options} */ (this._optionsFull);          const primaryProfile = (profileCurrent >= 0 && profileCurrent < profiles.length) ? profiles[profileCurrent] : null; @@ -250,7 +255,7 @@ class DisplayController {              scope: 'global',              optionsContext: null          }; -        await yomitan.api.modifySettings([modification], 'action-popup'); +        await this._api.modifySettings([modification], 'action-popup');      }      /** @@ -258,7 +263,7 @@ class DisplayController {       */      async _updateDictionariesEnabledWarnings(options) {          const noDictionariesEnabledWarnings = /** @type {NodeListOf<HTMLElement>} */ (document.querySelectorAll('.no-dictionaries-enabled-warning')); -        const dictionaries = await yomitan.api.getDictionaryInfo(); +        const dictionaries = await this._api.getDictionaryInfo();          const enabledDictionaries = new Set();          for (const {name, enabled} of options.dictionaries) { @@ -295,21 +300,22 @@ class DisplayController {      /** @returns {Promise<boolean>} */      async _isSafari() { -        const {browser} = await yomitan.api.getEnvironmentInfo(); +        const {browser} = await this._api.getEnvironmentInfo();          return browser === 'safari';      }  }  /** Entry point. */  async function main() { -    await yomitan.prepare(); +    const application = new Application(); +    await application.prepare(); -    yomitan.api.logIndicatorClear(); +    application.api.logIndicatorClear(); -    const displayController = new DisplayController(); +    const displayController = new DisplayController(application.api);      displayController.prepare(); -    yomitan.ready(); +    application.ready();  }  await main();  |