From 7a43649c13e54b15244f5e7ddaeee8d676a3d5e3 Mon Sep 17 00:00:00 2001 From: Sam Potts Date: Tue, 14 Aug 2018 11:17:27 +1000 Subject: [PATCH] Fix play/pause button state --- changelog.md | 4 ++++ 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); + } }); }