aboutsummaryrefslogtreecommitdiffstats
path: root/src/js/controls.js
diff options
context:
space:
mode:
authorAlbin Larsson <mail@albinlarsson.com>2018-07-30 23:20:27 +0200
committerAlbin Larsson <mail@albinlarsson.com>2018-07-31 00:43:56 +0200
commitdb22a8e9c47b373d47652b2cc653f53e0b452de0 (patch)
treeeaecde32f7e168f412bccd4118a348984b8a70d8 /src/js/controls.js
parent2679c5898edd534d19b5b2f68d895641c3e3fb1a (diff)
downloadplyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.tar.lz
plyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.tar.xz
plyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.zip
Improve handling of the 'controls' argument
Diffstat (limited to 'src/js/controls.js')
-rw-r--r--src/js/controls.js23
1 files changed, 12 insertions, 11 deletions
diff --git a/src/js/controls.js b/src/js/controls.js
index e95cfc86..c01e3584 100644
--- a/src/js/controls.js
+++ b/src/js/controls.js
@@ -1117,11 +1117,6 @@ const controls = {
// Build the default HTML
// TODO: Set order based on order in the config.controls array?
create(data) {
- // Do nothing if we want no controls
- if (is.empty(this.config.controls)) {
- return null;
- }
-
// Create the container
const container = createElement('div', getAttributesFromSelector(this.config.selectors.controls.wrapper));
@@ -1401,13 +1396,19 @@ const controls = {
};
let update = true;
- if (is.string(this.config.controls) || is.element(this.config.controls)) {
- // String or HTMLElement passed as the option
+ // If function, run it and use output
+ if (is.function(this.config.controls)) {
+ this.config.controls = this.config.controls.call(this.props);
+ }
+
+ // Convert falsy controls to empty array (primarily for empty strings)
+ if (!this.config.controls) {
+ this.config.controls = [];
+ }
+
+ if (is.element(this.config.controls) || is.string(this.config.controls)) {
+ // HTMLElement or Non-empty string passed as the option
container = this.config.controls;
- } else if (is.function(this.config.controls)) {
- // A custom function to build controls
- // The function can return a HTMLElement or String
- container = this.config.controls.call(this, props);
} else {
// Create controls
container = controls.create.call(this, {