aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/controls.js
diff options
context:
space:
mode:
Diffstat (limited to 'src/js/controls.js')
-rw-r--r--src/js/controls.js28
1 files changed, 18 insertions, 10 deletions
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);
+ }
});
}