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
- 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
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);
}
});
}