diff options
Diffstat (limited to 'javascript/videojs/src/js/loading-spinner.js')
| -rw-r--r-- | javascript/videojs/src/js/loading-spinner.js | 49 |
1 files changed, 49 insertions, 0 deletions
diff --git a/javascript/videojs/src/js/loading-spinner.js b/javascript/videojs/src/js/loading-spinner.js new file mode 100644 index 0000000..c5f362e --- /dev/null +++ b/javascript/videojs/src/js/loading-spinner.js @@ -0,0 +1,49 @@ +/** + * @file loading-spinner.js + */ +import Component from './component'; +import * as Dom from './utils/dom'; + +/** + * A loading spinner for use during waiting/loading events. + * + * @extends Component + */ +class LoadingSpinner extends Component { + + /** + * Create the `LoadingSpinner`s DOM element. + * + * @return {Element} + * The dom element that gets created. + */ + createEl() { + const isAudio = this.player_.isAudio(); + const playerType = this.localize(isAudio ? 'Audio Player' : 'Video Player'); + const controlText = Dom.createEl('span', { + className: 'vjs-control-text', + textContent: this.localize('{1} is loading.', [playerType]) + }); + + const el = super.createEl('div', { + className: 'vjs-loading-spinner', + dir: 'ltr' + }); + + el.appendChild(controlText); + + return el; + } + + /** + * Update control text on languagechange + */ + handleLanguagechange() { + this.$('.vjs-control-text').textContent = this.localize('{1} is loading.', [ + this.player_.isAudio() ? 'Audio Player' : 'Video Player' + ]); + } +} + +Component.registerComponent('LoadingSpinner', LoadingSpinner); +export default LoadingSpinner; |
