@hopecloud/jetstream-player 0.2.5 → 0.2.6

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -8,6 +8,8 @@ export declare const initPlayerMethods: () => {
8
8
  iframe: HTMLIFrameElement;
9
9
  play(): void;
10
10
  pause(): void;
11
+ playNext(): void;
12
+ playPrevious(): void;
11
13
  };
12
14
  };
13
15
  export declare const JetstreamPlayer: {
@@ -15,6 +17,8 @@ export declare const JetstreamPlayer: {
15
17
  iframe: HTMLIFrameElement;
16
18
  play(): void;
17
19
  pause(): void;
20
+ playNext(): void;
21
+ playPrevious(): void;
18
22
  };
19
23
  };
20
24
  export {};
@@ -1,5 +1,6 @@
1
1
  let iframesWithEmbedVideo = [];
2
2
  let allIframes = [];
3
+ let eventListenerAdded = false;
3
4
  export let embedVideosSrc = [];
4
5
  const callbacks = {};
5
6
  export const onEnded = (callback) => {
@@ -23,15 +24,18 @@ export const initPlayerMethods = () => {
23
24
  acc.allIframes.push(iframe);
24
25
  return acc;
25
26
  }, { iframesWithEmbedVideo: [], allIframes: [], embedVideosSrc: [] }));
26
- window.addEventListener('message', (event) => {
27
- if (event.data.src) {
28
- const index = embedVideosSrc.findIndex(elem => elem.includes(event.data.src.split('/')
29
- .find(substr => substr.startsWith('jsv:'))));
30
- if (event.data.msg in callbacks) {
31
- callbacks[event.data.msg](index);
27
+ if (!eventListenerAdded) {
28
+ window.addEventListener('message', (event) => {
29
+ if (event.data.src) {
30
+ const index = embedVideosSrc.findIndex(elem => elem.includes(event.data.src.split('/')
31
+ .find(substr => (substr.startsWith('jsv:') || substr.startsWith('jspl:')))));
32
+ if (event.data.msg in callbacks) {
33
+ callbacks[event.data.msg](index);
34
+ }
32
35
  }
33
- }
34
- });
36
+ });
37
+ eventListenerAdded = true;
38
+ }
35
39
  class JetstreamPlayer {
36
40
  iframe;
37
41
  constructor(selector) {
@@ -43,6 +47,12 @@ export const initPlayerMethods = () => {
43
47
  pause() {
44
48
  this.iframe.contentWindow?.postMessage('pause', '*');
45
49
  }
50
+ playNext() {
51
+ this.iframe.contentWindow?.postMessage('playNext', '*');
52
+ }
53
+ playPrevious() {
54
+ this.iframe.contentWindow?.postMessage('playPrevious', '*');
55
+ }
46
56
  }
47
57
  return JetstreamPlayer;
48
58
  };
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@hopecloud/jetstream-player",
3
- "version": "0.2.5",
3
+ "version": "0.2.6",
4
4
  "description": "Embeddable player for Jetstream videos",
5
5
  "scripts": {
6
6
  "build": "tsc"