@streamlayer/sdk-web-core 0.20.1 → 0.21.0
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.
- package/lib/deepLink/index.d.ts +4 -1
- package/lib/deepLink/index.js +19 -11
- package/lib/index.d.ts +1 -0
- package/lib/index.js +1 -0
- package/lib/videoPlayer/index.d.ts +19 -0
- package/lib/videoPlayer/index.js +22 -0
- package/package.json +6 -6
package/lib/deepLink/index.d.ts
CHANGED
|
@@ -19,7 +19,10 @@ declare module '@streamlayer/sdk-web-interfaces' {
|
|
|
19
19
|
deepLink: DeepLinkContext;
|
|
20
20
|
}
|
|
21
21
|
interface StreamLayerSDK {
|
|
22
|
-
|
|
22
|
+
addDeepLinkHandler: (cb: DeepLinkCallback) => void;
|
|
23
|
+
removeDeepLinkHandler: (cb: DeepLinkCallback) => void;
|
|
24
|
+
getInviter: () => string | undefined;
|
|
25
|
+
inviteDisplayed: () => void;
|
|
23
26
|
}
|
|
24
27
|
}
|
|
25
28
|
export declare const DEEP_LINK_PREFIX = "sldl";
|
package/lib/deepLink/index.js
CHANGED
|
@@ -52,24 +52,20 @@ const pickDeepLinkData = ($deepLinkContext, deepLinkHandled) => {
|
|
|
52
52
|
$deepLinkContext.setValue('data', result);
|
|
53
53
|
const remainExist = Object.keys(remain).length !== 0;
|
|
54
54
|
if (hash) {
|
|
55
|
+
let updatedHash = '';
|
|
55
56
|
if (remainExist) {
|
|
56
|
-
|
|
57
|
+
updatedHash = `#${new URLSearchParams(remain).toString()}`;
|
|
57
58
|
logger.debug({ updatedHash }, 'update hash');
|
|
58
|
-
window.location.hash = updatedHash;
|
|
59
|
-
}
|
|
60
|
-
else {
|
|
61
|
-
window.location.hash = '';
|
|
62
59
|
}
|
|
60
|
+
window.history.replaceState(null, '', window.location.pathname + window.location.search + updatedHash);
|
|
63
61
|
}
|
|
64
62
|
if (search) {
|
|
63
|
+
let updatedSearch = '';
|
|
65
64
|
if (remainExist) {
|
|
66
|
-
|
|
65
|
+
updatedSearch = `?${new URLSearchParams(remain).toString()}`;
|
|
67
66
|
logger.debug({ updatedSearch }, 'update search');
|
|
68
|
-
window.location.search = updatedSearch;
|
|
69
|
-
}
|
|
70
|
-
else {
|
|
71
|
-
window.location.search = '';
|
|
72
67
|
}
|
|
68
|
+
window.history.replaceState(null, '', window.location.pathname + updatedSearch + window.location.hash);
|
|
73
69
|
}
|
|
74
70
|
deepLinkHandled(result);
|
|
75
71
|
}
|
|
@@ -107,10 +103,22 @@ export const deepLink = (instance, opts, done) => {
|
|
|
107
103
|
},
|
|
108
104
|
onDeepLinkHandlers: new Set(),
|
|
109
105
|
};
|
|
106
|
+
instance.sdk.getInviter = () => {
|
|
107
|
+
const { data, used } = instance.deepLink.getDeepLinkData();
|
|
108
|
+
return used ? data?.[DEEP_LINK_USER_ID] : undefined;
|
|
109
|
+
};
|
|
110
|
+
instance.sdk.inviteDisplayed = () => {
|
|
111
|
+
instance.deepLink.$store.getStore().set({});
|
|
112
|
+
instance.deepLink.$store.getStore().off();
|
|
113
|
+
storage.del('sl-deep-link-store');
|
|
114
|
+
};
|
|
110
115
|
instance.deepLink.$store.subscribe((value) => storage.set('sl-deep-link-store', JSON.stringify(value)));
|
|
111
|
-
instance.sdk.
|
|
116
|
+
instance.sdk.addDeepLinkHandler = (cb) => {
|
|
112
117
|
instance.deepLink.onDeepLinkHandlers.add(cb);
|
|
113
118
|
};
|
|
119
|
+
instance.sdk.removeDeepLinkHandler = (cb) => {
|
|
120
|
+
instance.deepLink.onDeepLinkHandlers.delete(cb);
|
|
121
|
+
};
|
|
114
122
|
// called after sdk parsed deep link data from location
|
|
115
123
|
const deepLinkHandled = (data) => {
|
|
116
124
|
instance.deepLink.$store.setValue('handled', true);
|
package/lib/index.d.ts
CHANGED
|
@@ -2,6 +2,7 @@ import { StreamLayerContext } from '@streamlayer/sdk-web-interfaces';
|
|
|
2
2
|
export { bypass, storage } from './auth';
|
|
3
3
|
export { store } from './store';
|
|
4
4
|
export { deepLink, type DeepLinkUrlParams, type DeepLinkCallback, DEEP_LINK_PREFIX, DEEP_LINK_USER_ID, DEEP_LINK_EVENT_ID, DEEP_LINK_EXTERNAL_EVENT_ID, } from './deepLink';
|
|
5
|
+
export { videoPlayer, type VideoPlayerCallback } from './videoPlayer';
|
|
5
6
|
import './store';
|
|
6
7
|
import './auth';
|
|
7
8
|
declare module '@streamlayer/sdk-web-interfaces' {
|
package/lib/index.js
CHANGED
|
@@ -2,6 +2,7 @@ import { CoreStatus } from './store/store';
|
|
|
2
2
|
export { bypass, storage } from './auth';
|
|
3
3
|
export { store } from './store';
|
|
4
4
|
export { deepLink, DEEP_LINK_PREFIX, DEEP_LINK_USER_ID, DEEP_LINK_EVENT_ID, DEEP_LINK_EXTERNAL_EVENT_ID, } from './deepLink';
|
|
5
|
+
export { videoPlayer } from './videoPlayer';
|
|
5
6
|
import './store';
|
|
6
7
|
import './auth';
|
|
7
8
|
/**
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import { StreamLayerContext } from '@streamlayer/sdk-web-interfaces';
|
|
2
|
+
export type VideoPlayerData = {
|
|
3
|
+
muted: boolean;
|
|
4
|
+
};
|
|
5
|
+
export type VideoPlayerCallback = (videoPlayerData: VideoPlayerData) => void;
|
|
6
|
+
export interface VideoPlayerContext {
|
|
7
|
+
controllers: Set<VideoPlayerCallback>;
|
|
8
|
+
}
|
|
9
|
+
declare module '@streamlayer/sdk-web-interfaces' {
|
|
10
|
+
interface StreamLayerContext {
|
|
11
|
+
videoPlayer: VideoPlayerContext;
|
|
12
|
+
}
|
|
13
|
+
interface StreamLayerSDK {
|
|
14
|
+
addVideoPlayerController: (cb: VideoPlayerCallback) => void;
|
|
15
|
+
removeVideoPlayerController: (cb: VideoPlayerCallback) => void;
|
|
16
|
+
controlVideoPlayer: VideoPlayerCallback;
|
|
17
|
+
}
|
|
18
|
+
}
|
|
19
|
+
export declare const videoPlayer: (instance: StreamLayerContext, opts: unknown, done: () => void) => void;
|
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
export const videoPlayer = (instance, opts, done) => {
|
|
2
|
+
instance.videoPlayer = {
|
|
3
|
+
controllers: new Set(),
|
|
4
|
+
};
|
|
5
|
+
instance.sdk.addVideoPlayerController = (cb) => {
|
|
6
|
+
instance.videoPlayer.controllers.add(cb);
|
|
7
|
+
};
|
|
8
|
+
instance.sdk.removeVideoPlayerController = (cb) => {
|
|
9
|
+
instance.videoPlayer.controllers.delete(cb);
|
|
10
|
+
};
|
|
11
|
+
instance.sdk.controlVideoPlayer = (props) => {
|
|
12
|
+
for (const controller of instance.videoPlayer.controllers) {
|
|
13
|
+
try {
|
|
14
|
+
controller(props);
|
|
15
|
+
}
|
|
16
|
+
catch (err) {
|
|
17
|
+
console.error(err);
|
|
18
|
+
}
|
|
19
|
+
}
|
|
20
|
+
};
|
|
21
|
+
done();
|
|
22
|
+
};
|
package/package.json
CHANGED
|
@@ -7,11 +7,11 @@
|
|
|
7
7
|
"@nanostores/query": "^0.2.8",
|
|
8
8
|
"@streamlayer/sl-eslib": "^5.67.0",
|
|
9
9
|
"nanostores": "^0.9.5",
|
|
10
|
-
"@streamlayer/sdk-web-api": "^0.
|
|
11
|
-
"@streamlayer/sdk-web-interfaces": "^0.20.
|
|
12
|
-
"@streamlayer/sdk-web-storage": "^0.4.
|
|
13
|
-
"@streamlayer/sdk-web-
|
|
14
|
-
"@streamlayer/sdk-web-
|
|
10
|
+
"@streamlayer/sdk-web-api": "^0.22.0",
|
|
11
|
+
"@streamlayer/sdk-web-interfaces": "^0.20.5",
|
|
12
|
+
"@streamlayer/sdk-web-storage": "^0.4.3",
|
|
13
|
+
"@streamlayer/sdk-web-logger": "^0.5.16",
|
|
14
|
+
"@streamlayer/sdk-web-types": "^0.22.3"
|
|
15
15
|
},
|
|
16
16
|
"exports": {
|
|
17
17
|
".": {
|
|
@@ -40,7 +40,7 @@
|
|
|
40
40
|
"default": "./lib/auth/index.js"
|
|
41
41
|
}
|
|
42
42
|
},
|
|
43
|
-
"version": "0.
|
|
43
|
+
"version": "0.21.0",
|
|
44
44
|
"type": "module",
|
|
45
45
|
"main": "./lib/index.js",
|
|
46
46
|
"module": "./lib/index.js",
|