summaryrefslogtreecommitdiff
path: root/javascript/videojs/src/js/loading-spinner.js
diff options
context:
space:
mode:
Diffstat (limited to 'javascript/videojs/src/js/loading-spinner.js')
-rw-r--r--javascript/videojs/src/js/loading-spinner.js49
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;