diff options
author | toasted-nutbread <toasted-nutbread@users.noreply.github.com> | 2020-10-08 22:44:55 -0400 |
---|---|---|
committer | GitHub <noreply@github.com> | 2020-10-08 22:44:55 -0400 |
commit | 1ae8fb4bfa356cd14ab2a038bd86d7b49fada359 (patch) | |
tree | 8849089606d1237dfdf05bd3e51b9bffc3671be3 /ext | |
parent | bedcad6ab2d39ab8ae74b70803fe92fa09d07db3 (diff) |
Modal updates 2 (#901)
* Fix incorrect visible value
* Focus element when visibility is set
* Add isVisible function
Diffstat (limited to 'ext')
-rw-r--r-- | ext/bg/js/settings/modal.js | 16 |
1 files changed, 14 insertions, 2 deletions
diff --git a/ext/bg/js/settings/modal.js b/ext/bg/js/settings/modal.js index f9a8ec6b..55f73406 100644 --- a/ext/bg/js/settings/modal.js +++ b/ext/bg/js/settings/modal.js @@ -29,11 +29,23 @@ class Modal extends EventDispatcher { return this._node; } + isVisible() { + if (this._useJqueryModal()) { + return !!(this._getWrappedNode().data('bs.modal') || {}).isShown; + } else { + return this._node.classList.contains(this._visibleClassName); + } + } + setVisible(value) { + value = !!value; if (this._useJqueryModal()) { this._getWrappedNode().modal(value ? 'show' : 'hide'); } else { - this._node.classList.toggle(this._visibleClassName, value); + const {classList} = this._node; + if (classList.contains(this._visibleClassName) === value) { return; } + classList.toggle(this._visibleClassName, value); + if (value) { this._node.focus(); } } } @@ -86,7 +98,7 @@ class Modal extends EventDispatcher { const visible = this._node.classList.contains(this._visibleClassName); if (this._visible === visible) { return; } this._visible = visible; - this.trigger('visibilityChanged', {visible: false}); + this.trigger('visibilityChanged', {visible}); } _useJqueryModal() { |