Fix play/pause button state

This commit is contained in:
Sam Potts 2018-08-14 11:17:27 +10:00
parent 525bbf313e
commit 7a43649c13
2 changed files with 22 additions and 10 deletions

View File

@ -1,3 +1,7 @@
# v3.4.2
- Fix play/pause button state
# v3.4.1 # v3.4.1
- Bug fix for custom controls (fixes #1161) - Bug fix for custom controls (fixes #1161)

28
src/js/controls.js vendored
View File

@ -1610,20 +1610,28 @@ const controls = {
// Add pressed property to buttons // Add pressed property to buttons
if (!is.empty(this.elements.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 // Toggle classname when pressed property is set
Object.values(this.elements.buttons) Object.values(this.elements.buttons)
.filter(Boolean) .filter(Boolean)
.forEach(button => { .forEach(button => {
const className = this.config.classNames.controlPressed; if (is.array(button)) {
Object.defineProperty(button, 'pressed', { button.filter(Boolean).forEach(addProperty);
enumerable: true, } else {
get() { addProperty(button);
return hasClass(button, className); }
},
set(pressed = false) {
toggleClass(button, className, pressed);
},
});
}); });
} }