diff options
author | Sam Potts <sam@potts.es> | 2018-08-14 11:17:27 +1000 |
---|---|---|
committer | Sam Potts <sam@potts.es> | 2018-08-14 11:17:27 +1000 |
commit | 7a43649c13e54b15244f5e7ddaeee8d676a3d5e3 (patch) | |
tree | b3a86821ffdbd38a4e5d1be6cd3d4d6ed89b9def | |
parent | 525bbf313ef31964489faf90cda1be6077fc9d6e (diff) | |
download | plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.tar.lz plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.tar.xz plyr-7a43649c13e54b15244f5e7ddaeee8d676a3d5e3.zip |
Fix play/pause button state
-rw-r--r-- | changelog.md | 4 | ||||
-rw-r--r-- | src/js/controls.js | 28 |
2 files changed, 22 insertions, 10 deletions
diff --git a/changelog.md b/changelog.md index a4fc46b3..3dade1e1 100644 --- a/changelog.md +++ b/changelog.md @@ -1,3 +1,7 @@ +# v3.4.2 + +- Fix play/pause button state + # v3.4.1 - Bug fix for custom controls (fixes #1161) diff --git a/src/js/controls.js b/src/js/controls.js index c04ba783..35eba971 100644 --- a/src/js/controls.js +++ b/src/js/controls.js @@ -1610,20 +1610,28 @@ const controls = { // Add pressed property to buttons if (!is.empty(this.elements.buttons)) { + const addProperty = button => { + const className = this.config.classNames.controlPressed; + Object.defineProperty(button, 'pressed', { + enumerable: true, + get() { + return hasClass(button, className); + }, + set(pressed = false) { + toggleClass(button, className, pressed); + }, + }); + }; + // Toggle classname when pressed property is set Object.values(this.elements.buttons) .filter(Boolean) .forEach(button => { - const className = this.config.classNames.controlPressed; - Object.defineProperty(button, 'pressed', { - enumerable: true, - get() { - return hasClass(button, className); - }, - set(pressed = false) { - toggleClass(button, className, pressed); - }, - }); + if (is.array(button)) { + button.filter(Boolean).forEach(addProperty); + } else { + addProperty(button); + } }); } |