diff options
author | Albin Larsson <mail@albinlarsson.com> | 2018-07-30 23:20:27 +0200 |
---|---|---|
committer | Albin Larsson <mail@albinlarsson.com> | 2018-07-31 00:43:56 +0200 |
commit | db22a8e9c47b373d47652b2cc653f53e0b452de0 (patch) | |
tree | eaecde32f7e168f412bccd4118a348984b8a70d8 /src | |
parent | 2679c5898edd534d19b5b2f68d895641c3e3fb1a (diff) | |
download | plyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.tar.lz plyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.tar.xz plyr-db22a8e9c47b373d47652b2cc653f53e0b452de0.zip |
Improve handling of the 'controls' argument
Diffstat (limited to 'src')
-rw-r--r-- | src/js/controls.js | 23 |
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, { |