@takeoffmedia/react-native-penthera 0.2.12 → 0.2.14
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/ios/Penthera.swift +5 -4
- package/lib/commonjs/hooks/usePenthera/usePenthera.js +0 -87
- package/lib/commonjs/hooks/usePenthera/usePenthera.js.map +1 -1
- package/lib/commonjs/hooks/usePenthera/usePentheraInit.js +96 -0
- package/lib/commonjs/hooks/usePenthera/usePentheraInit.js.map +1 -0
- package/lib/module/hooks/usePenthera/usePenthera.js +2 -88
- package/lib/module/hooks/usePenthera/usePenthera.js.map +1 -1
- package/lib/module/hooks/usePenthera/usePentheraInit.js +90 -0
- package/lib/module/hooks/usePenthera/usePentheraInit.js.map +1 -0
- package/lib/typescript/hooks/usePenthera/usePenthera.d.ts +1 -2
- package/lib/typescript/hooks/usePenthera/usePenthera.d.ts.map +1 -1
- package/lib/typescript/hooks/usePenthera/usePentheraInit.d.ts +3 -0
- package/lib/typescript/hooks/usePenthera/usePentheraInit.d.ts.map +1 -0
- package/package.json +1 -1
- package/src/hooks/usePenthera/usePenthera.tsx +3 -111
- package/src/hooks/usePenthera/usePentheraInit.tsx +112 -0
package/ios/Penthera.swift
CHANGED
|
@@ -33,10 +33,11 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
33
33
|
EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.ERROR_DOWNLOAD, assetId: assetId ?? "", body: "Insufficient storage for download")
|
|
34
34
|
self.currentAset?.delete()
|
|
35
35
|
//This condition starts with the interval of 30 since we can have an estimate of kbps per second from approximately 20
|
|
36
|
-
} else if
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
36
|
+
} else if kbpsInt > 0 {
|
|
37
|
+
if(kbpsInt <= 500){
|
|
38
|
+
EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.ERROR_DOWNLOAD, assetId: assetId ?? "", body: "Low bandwidth or no connection")
|
|
39
|
+
}
|
|
40
|
+
}
|
|
40
41
|
}
|
|
41
42
|
}
|
|
42
43
|
}
|
|
@@ -4,11 +4,8 @@ Object.defineProperty(exports, "__esModule", {
|
|
|
4
4
|
value: true
|
|
5
5
|
});
|
|
6
6
|
exports.usePenthera = void 0;
|
|
7
|
-
exports.usePentheraInit = usePentheraInit;
|
|
8
|
-
var _react = require("react");
|
|
9
7
|
var _reactNative = require("react-native");
|
|
10
8
|
var _zustand = require("zustand");
|
|
11
|
-
var _usePenthera = require("./usePenthera.types");
|
|
12
9
|
var _nativeModules = require("../../nativeModules");
|
|
13
10
|
const usePenthera = (0, _zustand.create)(set => ({
|
|
14
11
|
assets: [],
|
|
@@ -115,88 +112,4 @@ const usePenthera = (0, _zustand.create)(set => ({
|
|
|
115
112
|
}
|
|
116
113
|
}));
|
|
117
114
|
exports.usePenthera = usePenthera;
|
|
118
|
-
const onListener = sessionConnect => {
|
|
119
|
-
const NEventEmitter = _reactNative.NativeModules.Penthera;
|
|
120
|
-
const eventEmitter = new _reactNative.NativeEventEmitter(NEventEmitter);
|
|
121
|
-
eventEmitter.removeAllListeners('penthera');
|
|
122
|
-
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
123
|
-
return eventListener;
|
|
124
|
-
};
|
|
125
|
-
function usePentheraInit(_ref2) {
|
|
126
|
-
let {
|
|
127
|
-
userId,
|
|
128
|
-
BACKPLANE_PRIVATE_KEY,
|
|
129
|
-
BACKPLANE_PUBLIC_KEY,
|
|
130
|
-
BACKPLANE_URL
|
|
131
|
-
} = _ref2;
|
|
132
|
-
const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
|
|
133
|
-
const addAsset = usePenthera(state => state.addAsset);
|
|
134
|
-
const deleteManyAssets = usePenthera(state => state.deleteManyAssets);
|
|
135
|
-
const updateAssetsProgress = usePenthera(state => state.updateAssetsProgress);
|
|
136
|
-
const onGetAllAssets = usePenthera(state => state.onGetAllAssets);
|
|
137
|
-
const setError = usePenthera(state => state.setError);
|
|
138
|
-
(0, _react.useEffect)(() => {
|
|
139
|
-
if (!userId || !BACKPLANE_PRIVATE_KEY || !BACKPLANE_PUBLIC_KEY || !BACKPLANE_URL) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
142
|
-
const init = async () => {
|
|
143
|
-
await (0, _nativeModules.initialize)(userId, BACKPLANE_URL, BACKPLANE_PUBLIC_KEY, BACKPLANE_PRIVATE_KEY);
|
|
144
|
-
setIsInitialized(true);
|
|
145
|
-
};
|
|
146
|
-
init();
|
|
147
|
-
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
148
|
-
(0, _react.useEffect)(() => {
|
|
149
|
-
if (!isInitialized) return;
|
|
150
|
-
console.log('starting init');
|
|
151
|
-
const sessionConnect = newEvent => {
|
|
152
|
-
const info = JSON.parse(newEvent);
|
|
153
|
-
console.log('info', info);
|
|
154
|
-
switch (info.code) {
|
|
155
|
-
case _usePenthera.PentheraEvent.VIRTUOSO_SUCCESS:
|
|
156
|
-
break;
|
|
157
|
-
case _usePenthera.PentheraEvent.DID_START_DOWNLOADING:
|
|
158
|
-
updateAssetsProgress({
|
|
159
|
-
[info === null || info === void 0 ? void 0 : info.assetId]: '0'
|
|
160
|
-
});
|
|
161
|
-
break;
|
|
162
|
-
case _usePenthera.PentheraEvent.PROGRESS_UPDATED:
|
|
163
|
-
updateAssetsProgress({
|
|
164
|
-
[info === null || info === void 0 ? void 0 : info.assetId]: info.body
|
|
165
|
-
});
|
|
166
|
-
break;
|
|
167
|
-
case _usePenthera.PentheraEvent.DOWNLOAD_COMPLETE:
|
|
168
|
-
updateAssetsProgress({
|
|
169
|
-
[info.assetId]: '100'
|
|
170
|
-
});
|
|
171
|
-
onGetAllAssets();
|
|
172
|
-
break;
|
|
173
|
-
case _usePenthera.PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
174
|
-
//TODO: Can be util for pause and resume download state
|
|
175
|
-
break;
|
|
176
|
-
case _usePenthera.PentheraEvent.ASSET_DELETED:
|
|
177
|
-
deleteManyAssets([info === null || info === void 0 ? void 0 : info.assetId]);
|
|
178
|
-
break;
|
|
179
|
-
case _usePenthera.PentheraEvent.ERROR_DOWNLOAD:
|
|
180
|
-
setError({
|
|
181
|
-
assetId: info === null || info === void 0 ? void 0 : info.assetId,
|
|
182
|
-
description: info === null || info === void 0 ? void 0 : info.body
|
|
183
|
-
});
|
|
184
|
-
break;
|
|
185
|
-
case _usePenthera.PentheraEvent.CONFIG_ASSET_FAILED:
|
|
186
|
-
case _usePenthera.PentheraEvent.PENDING_ASSET_FOUND:
|
|
187
|
-
default:
|
|
188
|
-
console.log('case nout found:', info);
|
|
189
|
-
break;
|
|
190
|
-
}
|
|
191
|
-
};
|
|
192
|
-
onGetAllAssets();
|
|
193
|
-
let eventListener;
|
|
194
|
-
eventListener = onListener(sessionConnect);
|
|
195
|
-
return () => {
|
|
196
|
-
var _eventListener;
|
|
197
|
-
(_eventListener = eventListener) === null || _eventListener === void 0 ? void 0 : _eventListener.remove();
|
|
198
|
-
setIsInitialized(false);
|
|
199
|
-
};
|
|
200
|
-
}, [isInitialized, addAsset, deleteManyAssets, onGetAllAssets, updateAssetsProgress, setError]);
|
|
201
|
-
}
|
|
202
115
|
//# sourceMappingURL=usePenthera.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_zustand","_nativeModules","usePenthera","create","set","assets","assetsProgress","assetError","assetId","description","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","onGetAllAssets","getDownloads","Array","isArray","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","Platform","OS","download","JSON","stringify","onDelete","response","deleteMany","deleted","Object","keys","updatedAssetsProgress","forEach","onPauseDownload","pauseDownload","onPlayVideo","playAsset","setError","dataParse","exports"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,96 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
Object.defineProperty(exports, "__esModule", {
|
|
4
|
+
value: true
|
|
5
|
+
});
|
|
6
|
+
exports.usePentheraInit = usePentheraInit;
|
|
7
|
+
var _react = require("react");
|
|
8
|
+
var _reactNative = require("react-native");
|
|
9
|
+
var _usePenthera = require("./usePenthera.types");
|
|
10
|
+
var _nativeModules = require("../../nativeModules");
|
|
11
|
+
var _usePenthera2 = require("./usePenthera");
|
|
12
|
+
const onListener = sessionConnect => {
|
|
13
|
+
const NEventEmitter = _reactNative.NativeModules.Penthera;
|
|
14
|
+
const eventEmitter = new _reactNative.NativeEventEmitter(NEventEmitter);
|
|
15
|
+
eventEmitter.removeAllListeners('penthera');
|
|
16
|
+
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
17
|
+
return eventListener;
|
|
18
|
+
};
|
|
19
|
+
function usePentheraInit(_ref) {
|
|
20
|
+
let {
|
|
21
|
+
userId,
|
|
22
|
+
BACKPLANE_PRIVATE_KEY,
|
|
23
|
+
BACKPLANE_PUBLIC_KEY,
|
|
24
|
+
BACKPLANE_URL
|
|
25
|
+
} = _ref;
|
|
26
|
+
const [isInitialized, setIsInitialized] = (0, _react.useState)(false);
|
|
27
|
+
const addAsset = (0, _usePenthera2.usePenthera)(state => state.addAsset);
|
|
28
|
+
const deleteManyAssets = (0, _usePenthera2.usePenthera)(state => state.deleteManyAssets);
|
|
29
|
+
const updateAssetsProgress = (0, _usePenthera2.usePenthera)(state => state.updateAssetsProgress);
|
|
30
|
+
const onGetAllAssets = (0, _usePenthera2.usePenthera)(state => state.onGetAllAssets);
|
|
31
|
+
const setError = (0, _usePenthera2.usePenthera)(state => state.setError);
|
|
32
|
+
(0, _react.useEffect)(() => {
|
|
33
|
+
if (!userId || !BACKPLANE_PRIVATE_KEY || !BACKPLANE_PUBLIC_KEY || !BACKPLANE_URL) {
|
|
34
|
+
return;
|
|
35
|
+
}
|
|
36
|
+
const init = async () => {
|
|
37
|
+
await (0, _nativeModules.initialize)(userId, BACKPLANE_URL, BACKPLANE_PUBLIC_KEY, BACKPLANE_PRIVATE_KEY);
|
|
38
|
+
setIsInitialized(true);
|
|
39
|
+
};
|
|
40
|
+
init();
|
|
41
|
+
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
42
|
+
(0, _react.useEffect)(() => {
|
|
43
|
+
if (!isInitialized) return;
|
|
44
|
+
console.log('starting init');
|
|
45
|
+
const sessionConnect = newEvent => {
|
|
46
|
+
const info = JSON.parse(newEvent);
|
|
47
|
+
console.log('info', info);
|
|
48
|
+
switch (info.code) {
|
|
49
|
+
case _usePenthera.PentheraEvent.VIRTUOSO_SUCCESS:
|
|
50
|
+
break;
|
|
51
|
+
case _usePenthera.PentheraEvent.DID_START_DOWNLOADING:
|
|
52
|
+
updateAssetsProgress({
|
|
53
|
+
[info === null || info === void 0 ? void 0 : info.assetId]: '0'
|
|
54
|
+
});
|
|
55
|
+
break;
|
|
56
|
+
case _usePenthera.PentheraEvent.PROGRESS_UPDATED:
|
|
57
|
+
updateAssetsProgress({
|
|
58
|
+
[info === null || info === void 0 ? void 0 : info.assetId]: info.body
|
|
59
|
+
});
|
|
60
|
+
break;
|
|
61
|
+
case _usePenthera.PentheraEvent.DOWNLOAD_COMPLETE:
|
|
62
|
+
updateAssetsProgress({
|
|
63
|
+
[info.assetId]: '100'
|
|
64
|
+
});
|
|
65
|
+
onGetAllAssets();
|
|
66
|
+
break;
|
|
67
|
+
case _usePenthera.PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
68
|
+
//TODO: Can be util for pause and resume download state
|
|
69
|
+
break;
|
|
70
|
+
case _usePenthera.PentheraEvent.ASSET_DELETED:
|
|
71
|
+
deleteManyAssets([info === null || info === void 0 ? void 0 : info.assetId]);
|
|
72
|
+
break;
|
|
73
|
+
case _usePenthera.PentheraEvent.ERROR_DOWNLOAD:
|
|
74
|
+
setError({
|
|
75
|
+
assetId: info === null || info === void 0 ? void 0 : info.assetId,
|
|
76
|
+
description: info === null || info === void 0 ? void 0 : info.body
|
|
77
|
+
});
|
|
78
|
+
break;
|
|
79
|
+
case _usePenthera.PentheraEvent.CONFIG_ASSET_FAILED:
|
|
80
|
+
case _usePenthera.PentheraEvent.PENDING_ASSET_FOUND:
|
|
81
|
+
default:
|
|
82
|
+
console.log('case nout found:', info);
|
|
83
|
+
break;
|
|
84
|
+
}
|
|
85
|
+
};
|
|
86
|
+
onGetAllAssets();
|
|
87
|
+
let eventListener;
|
|
88
|
+
eventListener = onListener(sessionConnect);
|
|
89
|
+
return () => {
|
|
90
|
+
var _eventListener;
|
|
91
|
+
(_eventListener = eventListener) === null || _eventListener === void 0 ? void 0 : _eventListener.remove();
|
|
92
|
+
setIsInitialized(false);
|
|
93
|
+
};
|
|
94
|
+
}, [isInitialized, addAsset, deleteManyAssets, onGetAllAssets, updateAssetsProgress, setError]);
|
|
95
|
+
}
|
|
96
|
+
//# sourceMappingURL=usePentheraInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["_react","require","_reactNative","_usePenthera","_nativeModules","_usePenthera2","onListener","sessionConnect","NEventEmitter","NativeModules","Penthera","eventEmitter","NativeEventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","useState","addAsset","usePenthera","state","deleteManyAssets","updateAssetsProgress","onGetAllAssets","setError","useEffect","init","initialize","console","log","newEvent","info","JSON","parse","code","PentheraEvent","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","assetId","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","ERROR_DOWNLOAD","description","CONFIG_ASSET_FAILED","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePentheraInit.tsx"],"mappings":"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"}
|
|
@@ -1,8 +1,6 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
1
|
+
import { Platform } from 'react-native';
|
|
3
2
|
import { create } from 'zustand';
|
|
4
|
-
import {
|
|
5
|
-
import { deleteMany, download, getDownloads, initialize, pauseDownload, playAsset } from '../../nativeModules';
|
|
3
|
+
import { deleteMany, download, getDownloads, pauseDownload, playAsset } from '../../nativeModules';
|
|
6
4
|
export const usePenthera = create(set => ({
|
|
7
5
|
assets: [],
|
|
8
6
|
assetsProgress: {},
|
|
@@ -107,88 +105,4 @@ export const usePenthera = create(set => ({
|
|
|
107
105
|
}));
|
|
108
106
|
}
|
|
109
107
|
}));
|
|
110
|
-
const onListener = sessionConnect => {
|
|
111
|
-
const NEventEmitter = NativeModules.Penthera;
|
|
112
|
-
const eventEmitter = new NativeEventEmitter(NEventEmitter);
|
|
113
|
-
eventEmitter.removeAllListeners('penthera');
|
|
114
|
-
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
115
|
-
return eventListener;
|
|
116
|
-
};
|
|
117
|
-
export function usePentheraInit(_ref2) {
|
|
118
|
-
let {
|
|
119
|
-
userId,
|
|
120
|
-
BACKPLANE_PRIVATE_KEY,
|
|
121
|
-
BACKPLANE_PUBLIC_KEY,
|
|
122
|
-
BACKPLANE_URL
|
|
123
|
-
} = _ref2;
|
|
124
|
-
const [isInitialized, setIsInitialized] = useState(false);
|
|
125
|
-
const addAsset = usePenthera(state => state.addAsset);
|
|
126
|
-
const deleteManyAssets = usePenthera(state => state.deleteManyAssets);
|
|
127
|
-
const updateAssetsProgress = usePenthera(state => state.updateAssetsProgress);
|
|
128
|
-
const onGetAllAssets = usePenthera(state => state.onGetAllAssets);
|
|
129
|
-
const setError = usePenthera(state => state.setError);
|
|
130
|
-
useEffect(() => {
|
|
131
|
-
if (!userId || !BACKPLANE_PRIVATE_KEY || !BACKPLANE_PUBLIC_KEY || !BACKPLANE_URL) {
|
|
132
|
-
return;
|
|
133
|
-
}
|
|
134
|
-
const init = async () => {
|
|
135
|
-
await initialize(userId, BACKPLANE_URL, BACKPLANE_PUBLIC_KEY, BACKPLANE_PRIVATE_KEY);
|
|
136
|
-
setIsInitialized(true);
|
|
137
|
-
};
|
|
138
|
-
init();
|
|
139
|
-
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
140
|
-
useEffect(() => {
|
|
141
|
-
if (!isInitialized) return;
|
|
142
|
-
console.log('starting init');
|
|
143
|
-
const sessionConnect = newEvent => {
|
|
144
|
-
const info = JSON.parse(newEvent);
|
|
145
|
-
console.log('info', info);
|
|
146
|
-
switch (info.code) {
|
|
147
|
-
case PentheraEvent.VIRTUOSO_SUCCESS:
|
|
148
|
-
break;
|
|
149
|
-
case PentheraEvent.DID_START_DOWNLOADING:
|
|
150
|
-
updateAssetsProgress({
|
|
151
|
-
[info === null || info === void 0 ? void 0 : info.assetId]: '0'
|
|
152
|
-
});
|
|
153
|
-
break;
|
|
154
|
-
case PentheraEvent.PROGRESS_UPDATED:
|
|
155
|
-
updateAssetsProgress({
|
|
156
|
-
[info === null || info === void 0 ? void 0 : info.assetId]: info.body
|
|
157
|
-
});
|
|
158
|
-
break;
|
|
159
|
-
case PentheraEvent.DOWNLOAD_COMPLETE:
|
|
160
|
-
updateAssetsProgress({
|
|
161
|
-
[info.assetId]: '100'
|
|
162
|
-
});
|
|
163
|
-
onGetAllAssets();
|
|
164
|
-
break;
|
|
165
|
-
case PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
166
|
-
//TODO: Can be util for pause and resume download state
|
|
167
|
-
break;
|
|
168
|
-
case PentheraEvent.ASSET_DELETED:
|
|
169
|
-
deleteManyAssets([info === null || info === void 0 ? void 0 : info.assetId]);
|
|
170
|
-
break;
|
|
171
|
-
case PentheraEvent.ERROR_DOWNLOAD:
|
|
172
|
-
setError({
|
|
173
|
-
assetId: info === null || info === void 0 ? void 0 : info.assetId,
|
|
174
|
-
description: info === null || info === void 0 ? void 0 : info.body
|
|
175
|
-
});
|
|
176
|
-
break;
|
|
177
|
-
case PentheraEvent.CONFIG_ASSET_FAILED:
|
|
178
|
-
case PentheraEvent.PENDING_ASSET_FOUND:
|
|
179
|
-
default:
|
|
180
|
-
console.log('case nout found:', info);
|
|
181
|
-
break;
|
|
182
|
-
}
|
|
183
|
-
};
|
|
184
|
-
onGetAllAssets();
|
|
185
|
-
let eventListener;
|
|
186
|
-
eventListener = onListener(sessionConnect);
|
|
187
|
-
return () => {
|
|
188
|
-
var _eventListener;
|
|
189
|
-
(_eventListener = eventListener) === null || _eventListener === void 0 ? void 0 : _eventListener.remove();
|
|
190
|
-
setIsInitialized(false);
|
|
191
|
-
};
|
|
192
|
-
}, [isInitialized, addAsset, deleteManyAssets, onGetAllAssets, updateAssetsProgress, setError]);
|
|
193
|
-
}
|
|
194
108
|
//# sourceMappingURL=usePenthera.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["
|
|
1
|
+
{"version":3,"names":["Platform","create","deleteMany","download","getDownloads","pauseDownload","playAsset","usePenthera","set","assets","assetsProgress","assetError","assetId","description","loadAssets","addAsset","asset","state","deleteManyAssets","assetIds","filter","includes","id","updateAssetsProgress","progress","onGetAllAssets","Array","isArray","error","console","log","onDownload","_ref","_item$thumbnails","item","url","drm","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","OS","JSON","stringify","onDelete","response","deleted","Object","keys","updatedAssetsProgress","forEach","onPauseDownload","onPlayVideo","setError","dataParse"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
|
|
@@ -0,0 +1,90 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
3
|
+
import { PentheraEvent } from './usePenthera.types';
|
|
4
|
+
import { initialize } from '../../nativeModules';
|
|
5
|
+
import { usePenthera } from './usePenthera';
|
|
6
|
+
const onListener = sessionConnect => {
|
|
7
|
+
const NEventEmitter = NativeModules.Penthera;
|
|
8
|
+
const eventEmitter = new NativeEventEmitter(NEventEmitter);
|
|
9
|
+
eventEmitter.removeAllListeners('penthera');
|
|
10
|
+
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
11
|
+
return eventListener;
|
|
12
|
+
};
|
|
13
|
+
export function usePentheraInit(_ref) {
|
|
14
|
+
let {
|
|
15
|
+
userId,
|
|
16
|
+
BACKPLANE_PRIVATE_KEY,
|
|
17
|
+
BACKPLANE_PUBLIC_KEY,
|
|
18
|
+
BACKPLANE_URL
|
|
19
|
+
} = _ref;
|
|
20
|
+
const [isInitialized, setIsInitialized] = useState(false);
|
|
21
|
+
const addAsset = usePenthera(state => state.addAsset);
|
|
22
|
+
const deleteManyAssets = usePenthera(state => state.deleteManyAssets);
|
|
23
|
+
const updateAssetsProgress = usePenthera(state => state.updateAssetsProgress);
|
|
24
|
+
const onGetAllAssets = usePenthera(state => state.onGetAllAssets);
|
|
25
|
+
const setError = usePenthera(state => state.setError);
|
|
26
|
+
useEffect(() => {
|
|
27
|
+
if (!userId || !BACKPLANE_PRIVATE_KEY || !BACKPLANE_PUBLIC_KEY || !BACKPLANE_URL) {
|
|
28
|
+
return;
|
|
29
|
+
}
|
|
30
|
+
const init = async () => {
|
|
31
|
+
await initialize(userId, BACKPLANE_URL, BACKPLANE_PUBLIC_KEY, BACKPLANE_PRIVATE_KEY);
|
|
32
|
+
setIsInitialized(true);
|
|
33
|
+
};
|
|
34
|
+
init();
|
|
35
|
+
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
36
|
+
useEffect(() => {
|
|
37
|
+
if (!isInitialized) return;
|
|
38
|
+
console.log('starting init');
|
|
39
|
+
const sessionConnect = newEvent => {
|
|
40
|
+
const info = JSON.parse(newEvent);
|
|
41
|
+
console.log('info', info);
|
|
42
|
+
switch (info.code) {
|
|
43
|
+
case PentheraEvent.VIRTUOSO_SUCCESS:
|
|
44
|
+
break;
|
|
45
|
+
case PentheraEvent.DID_START_DOWNLOADING:
|
|
46
|
+
updateAssetsProgress({
|
|
47
|
+
[info === null || info === void 0 ? void 0 : info.assetId]: '0'
|
|
48
|
+
});
|
|
49
|
+
break;
|
|
50
|
+
case PentheraEvent.PROGRESS_UPDATED:
|
|
51
|
+
updateAssetsProgress({
|
|
52
|
+
[info === null || info === void 0 ? void 0 : info.assetId]: info.body
|
|
53
|
+
});
|
|
54
|
+
break;
|
|
55
|
+
case PentheraEvent.DOWNLOAD_COMPLETE:
|
|
56
|
+
updateAssetsProgress({
|
|
57
|
+
[info.assetId]: '100'
|
|
58
|
+
});
|
|
59
|
+
onGetAllAssets();
|
|
60
|
+
break;
|
|
61
|
+
case PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
62
|
+
//TODO: Can be util for pause and resume download state
|
|
63
|
+
break;
|
|
64
|
+
case PentheraEvent.ASSET_DELETED:
|
|
65
|
+
deleteManyAssets([info === null || info === void 0 ? void 0 : info.assetId]);
|
|
66
|
+
break;
|
|
67
|
+
case PentheraEvent.ERROR_DOWNLOAD:
|
|
68
|
+
setError({
|
|
69
|
+
assetId: info === null || info === void 0 ? void 0 : info.assetId,
|
|
70
|
+
description: info === null || info === void 0 ? void 0 : info.body
|
|
71
|
+
});
|
|
72
|
+
break;
|
|
73
|
+
case PentheraEvent.CONFIG_ASSET_FAILED:
|
|
74
|
+
case PentheraEvent.PENDING_ASSET_FOUND:
|
|
75
|
+
default:
|
|
76
|
+
console.log('case nout found:', info);
|
|
77
|
+
break;
|
|
78
|
+
}
|
|
79
|
+
};
|
|
80
|
+
onGetAllAssets();
|
|
81
|
+
let eventListener;
|
|
82
|
+
eventListener = onListener(sessionConnect);
|
|
83
|
+
return () => {
|
|
84
|
+
var _eventListener;
|
|
85
|
+
(_eventListener = eventListener) === null || _eventListener === void 0 ? void 0 : _eventListener.remove();
|
|
86
|
+
setIsInitialized(false);
|
|
87
|
+
};
|
|
88
|
+
}, [isInitialized, addAsset, deleteManyAssets, onGetAllAssets, updateAssetsProgress, setError]);
|
|
89
|
+
}
|
|
90
|
+
//# sourceMappingURL=usePentheraInit.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"names":["useEffect","useState","NativeEventEmitter","NativeModules","PentheraEvent","initialize","usePenthera","onListener","sessionConnect","NEventEmitter","Penthera","eventEmitter","removeAllListeners","eventListener","addListener","usePentheraInit","_ref","userId","BACKPLANE_PRIVATE_KEY","BACKPLANE_PUBLIC_KEY","BACKPLANE_URL","isInitialized","setIsInitialized","addAsset","state","deleteManyAssets","updateAssetsProgress","onGetAllAssets","setError","init","console","log","newEvent","info","JSON","parse","code","VIRTUOSO_SUCCESS","DID_START_DOWNLOADING","assetId","PROGRESS_UPDATED","body","DOWNLOAD_COMPLETE","ASSET_RESUME_DOWNLOAD_UPDATED","ASSET_DELETED","ERROR_DOWNLOAD","description","CONFIG_ASSET_FAILED","PENDING_ASSET_FOUND","_eventListener","remove"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePentheraInit.tsx"],"mappings":"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"}
|
|
@@ -1,4 +1,3 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import type { PentheraState, PentheraAction } from './usePenthera.types';
|
|
2
2
|
export declare const usePenthera: import("zustand").UseBoundStore<import("zustand").StoreApi<PentheraState & PentheraAction>>;
|
|
3
|
-
export declare function usePentheraInit({ userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL, }: PentheraProviderProps): void;
|
|
4
3
|
//# sourceMappingURL=usePenthera.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePenthera.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.tsx"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"usePenthera.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.tsx"],"names":[],"mappings":"AAGA,OAAO,KAAK,EACV,aAAa,EACb,cAAc,EAEf,MAAM,qBAAqB,CAAC;AAU7B,eAAO,MAAM,WAAW,6FAmGrB,CAAC"}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"usePentheraInit.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePentheraInit.tsx"],"names":[],"mappings":"AAIA,OAAO,EAEL,KAAK,qBAAqB,EAE3B,MAAM,qBAAqB,CAAC;AAW7B,wBAAgB,eAAe,CAAC,EAC9B,MAAM,EACN,qBAAqB,EACrB,oBAAoB,EACpB,aAAa,GACd,EAAE,qBAAqB,QAuFvB"}
|
package/package.json
CHANGED
|
@@ -1,21 +1,15 @@
|
|
|
1
|
-
import {
|
|
2
|
-
import { NativeEventEmitter, NativeModules, Platform } from 'react-native';
|
|
3
|
-
import type { EmitterSubscription } from 'react-native';
|
|
1
|
+
import { Platform } from 'react-native';
|
|
4
2
|
import { create } from 'zustand';
|
|
5
3
|
|
|
6
|
-
import {
|
|
7
|
-
|
|
8
|
-
type PentheraState,
|
|
9
|
-
type PentheraProviderProps,
|
|
4
|
+
import type {
|
|
5
|
+
PentheraState,
|
|
10
6
|
PentheraAction,
|
|
11
|
-
Event,
|
|
12
7
|
InterfaceDataPlay,
|
|
13
8
|
} from './usePenthera.types';
|
|
14
9
|
import {
|
|
15
10
|
deleteMany,
|
|
16
11
|
download,
|
|
17
12
|
getDownloads,
|
|
18
|
-
initialize,
|
|
19
13
|
pauseDownload,
|
|
20
14
|
playAsset,
|
|
21
15
|
} from '../../nativeModules';
|
|
@@ -121,105 +115,3 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
|
|
|
121
115
|
}));
|
|
122
116
|
},
|
|
123
117
|
}));
|
|
124
|
-
|
|
125
|
-
const onListener = (sessionConnect: (event: string) => void) => {
|
|
126
|
-
const NEventEmitter = NativeModules.Penthera;
|
|
127
|
-
const eventEmitter = new NativeEventEmitter(NEventEmitter);
|
|
128
|
-
eventEmitter.removeAllListeners('penthera');
|
|
129
|
-
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
130
|
-
return eventListener;
|
|
131
|
-
};
|
|
132
|
-
|
|
133
|
-
export function usePentheraInit({
|
|
134
|
-
userId,
|
|
135
|
-
BACKPLANE_PRIVATE_KEY,
|
|
136
|
-
BACKPLANE_PUBLIC_KEY,
|
|
137
|
-
BACKPLANE_URL,
|
|
138
|
-
}: PentheraProviderProps) {
|
|
139
|
-
const [isInitialized, setIsInitialized] = useState(false);
|
|
140
|
-
const addAsset = usePenthera((state) => state.addAsset);
|
|
141
|
-
const deleteManyAssets = usePenthera((state) => state.deleteManyAssets);
|
|
142
|
-
const updateAssetsProgress = usePenthera(
|
|
143
|
-
(state) => state.updateAssetsProgress
|
|
144
|
-
);
|
|
145
|
-
const onGetAllAssets = usePenthera((state) => state.onGetAllAssets);
|
|
146
|
-
const setError = usePenthera((state) => state.setError);
|
|
147
|
-
useEffect(() => {
|
|
148
|
-
if (
|
|
149
|
-
!userId ||
|
|
150
|
-
!BACKPLANE_PRIVATE_KEY ||
|
|
151
|
-
!BACKPLANE_PUBLIC_KEY ||
|
|
152
|
-
!BACKPLANE_URL
|
|
153
|
-
) {
|
|
154
|
-
return;
|
|
155
|
-
}
|
|
156
|
-
|
|
157
|
-
const init = async () => {
|
|
158
|
-
await initialize(
|
|
159
|
-
userId,
|
|
160
|
-
BACKPLANE_URL,
|
|
161
|
-
BACKPLANE_PUBLIC_KEY,
|
|
162
|
-
BACKPLANE_PRIVATE_KEY
|
|
163
|
-
);
|
|
164
|
-
setIsInitialized(true);
|
|
165
|
-
};
|
|
166
|
-
init();
|
|
167
|
-
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
168
|
-
|
|
169
|
-
useEffect(() => {
|
|
170
|
-
if (!isInitialized) return;
|
|
171
|
-
console.log('starting init');
|
|
172
|
-
const sessionConnect = (newEvent: string) => {
|
|
173
|
-
const info: Event = JSON.parse(newEvent);
|
|
174
|
-
console.log('info', info);
|
|
175
|
-
switch (info.code) {
|
|
176
|
-
case PentheraEvent.VIRTUOSO_SUCCESS:
|
|
177
|
-
break;
|
|
178
|
-
|
|
179
|
-
case PentheraEvent.DID_START_DOWNLOADING:
|
|
180
|
-
updateAssetsProgress({ [info?.assetId]: '0' });
|
|
181
|
-
break;
|
|
182
|
-
|
|
183
|
-
case PentheraEvent.PROGRESS_UPDATED:
|
|
184
|
-
updateAssetsProgress({ [info?.assetId]: info.body });
|
|
185
|
-
break;
|
|
186
|
-
|
|
187
|
-
case PentheraEvent.DOWNLOAD_COMPLETE:
|
|
188
|
-
updateAssetsProgress({ [info.assetId]: '100' });
|
|
189
|
-
onGetAllAssets();
|
|
190
|
-
break;
|
|
191
|
-
|
|
192
|
-
case PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
193
|
-
//TODO: Can be util for pause and resume download state
|
|
194
|
-
break;
|
|
195
|
-
|
|
196
|
-
case PentheraEvent.ASSET_DELETED:
|
|
197
|
-
deleteManyAssets([info?.assetId]);
|
|
198
|
-
break;
|
|
199
|
-
case PentheraEvent.ERROR_DOWNLOAD:
|
|
200
|
-
setError({ assetId: info?.assetId, description: info?.body });
|
|
201
|
-
break;
|
|
202
|
-
case PentheraEvent.CONFIG_ASSET_FAILED:
|
|
203
|
-
case PentheraEvent.PENDING_ASSET_FOUND:
|
|
204
|
-
default:
|
|
205
|
-
console.log('case nout found:', info);
|
|
206
|
-
break;
|
|
207
|
-
}
|
|
208
|
-
};
|
|
209
|
-
onGetAllAssets();
|
|
210
|
-
let eventListener: EmitterSubscription | undefined;
|
|
211
|
-
eventListener = onListener(sessionConnect);
|
|
212
|
-
|
|
213
|
-
return () => {
|
|
214
|
-
eventListener?.remove();
|
|
215
|
-
setIsInitialized(false);
|
|
216
|
-
};
|
|
217
|
-
}, [
|
|
218
|
-
isInitialized,
|
|
219
|
-
addAsset,
|
|
220
|
-
deleteManyAssets,
|
|
221
|
-
onGetAllAssets,
|
|
222
|
-
updateAssetsProgress,
|
|
223
|
-
setError,
|
|
224
|
-
]);
|
|
225
|
-
}
|
|
@@ -0,0 +1,112 @@
|
|
|
1
|
+
import { useEffect, useState } from 'react';
|
|
2
|
+
import { NativeEventEmitter, NativeModules } from 'react-native';
|
|
3
|
+
import type { EmitterSubscription } from 'react-native';
|
|
4
|
+
|
|
5
|
+
import {
|
|
6
|
+
PentheraEvent,
|
|
7
|
+
type PentheraProviderProps,
|
|
8
|
+
Event,
|
|
9
|
+
} from './usePenthera.types';
|
|
10
|
+
import { initialize } from '../../nativeModules';
|
|
11
|
+
import { usePenthera } from './usePenthera';
|
|
12
|
+
const onListener = (sessionConnect: (event: string) => void) => {
|
|
13
|
+
const NEventEmitter = NativeModules.Penthera;
|
|
14
|
+
const eventEmitter = new NativeEventEmitter(NEventEmitter);
|
|
15
|
+
eventEmitter.removeAllListeners('penthera');
|
|
16
|
+
const eventListener = eventEmitter.addListener('penthera', sessionConnect);
|
|
17
|
+
return eventListener;
|
|
18
|
+
};
|
|
19
|
+
|
|
20
|
+
export function usePentheraInit({
|
|
21
|
+
userId,
|
|
22
|
+
BACKPLANE_PRIVATE_KEY,
|
|
23
|
+
BACKPLANE_PUBLIC_KEY,
|
|
24
|
+
BACKPLANE_URL,
|
|
25
|
+
}: PentheraProviderProps) {
|
|
26
|
+
const [isInitialized, setIsInitialized] = useState(false);
|
|
27
|
+
const addAsset = usePenthera((state) => state.addAsset);
|
|
28
|
+
const deleteManyAssets = usePenthera((state) => state.deleteManyAssets);
|
|
29
|
+
const updateAssetsProgress = usePenthera(
|
|
30
|
+
(state) => state.updateAssetsProgress
|
|
31
|
+
);
|
|
32
|
+
const onGetAllAssets = usePenthera((state) => state.onGetAllAssets);
|
|
33
|
+
const setError = usePenthera((state) => state.setError);
|
|
34
|
+
useEffect(() => {
|
|
35
|
+
if (
|
|
36
|
+
!userId ||
|
|
37
|
+
!BACKPLANE_PRIVATE_KEY ||
|
|
38
|
+
!BACKPLANE_PUBLIC_KEY ||
|
|
39
|
+
!BACKPLANE_URL
|
|
40
|
+
) {
|
|
41
|
+
return;
|
|
42
|
+
}
|
|
43
|
+
|
|
44
|
+
const init = async () => {
|
|
45
|
+
await initialize(
|
|
46
|
+
userId,
|
|
47
|
+
BACKPLANE_URL,
|
|
48
|
+
BACKPLANE_PUBLIC_KEY,
|
|
49
|
+
BACKPLANE_PRIVATE_KEY
|
|
50
|
+
);
|
|
51
|
+
setIsInitialized(true);
|
|
52
|
+
};
|
|
53
|
+
init();
|
|
54
|
+
}, [userId, BACKPLANE_PRIVATE_KEY, BACKPLANE_PUBLIC_KEY, BACKPLANE_URL]);
|
|
55
|
+
|
|
56
|
+
useEffect(() => {
|
|
57
|
+
if (!isInitialized) return;
|
|
58
|
+
console.log('starting init');
|
|
59
|
+
const sessionConnect = (newEvent: string) => {
|
|
60
|
+
const info: Event = JSON.parse(newEvent);
|
|
61
|
+
console.log('info', info);
|
|
62
|
+
switch (info.code) {
|
|
63
|
+
case PentheraEvent.VIRTUOSO_SUCCESS:
|
|
64
|
+
break;
|
|
65
|
+
|
|
66
|
+
case PentheraEvent.DID_START_DOWNLOADING:
|
|
67
|
+
updateAssetsProgress({ [info?.assetId]: '0' });
|
|
68
|
+
break;
|
|
69
|
+
|
|
70
|
+
case PentheraEvent.PROGRESS_UPDATED:
|
|
71
|
+
updateAssetsProgress({ [info?.assetId]: info.body });
|
|
72
|
+
break;
|
|
73
|
+
|
|
74
|
+
case PentheraEvent.DOWNLOAD_COMPLETE:
|
|
75
|
+
updateAssetsProgress({ [info.assetId]: '100' });
|
|
76
|
+
onGetAllAssets();
|
|
77
|
+
break;
|
|
78
|
+
|
|
79
|
+
case PentheraEvent.ASSET_RESUME_DOWNLOAD_UPDATED:
|
|
80
|
+
//TODO: Can be util for pause and resume download state
|
|
81
|
+
break;
|
|
82
|
+
|
|
83
|
+
case PentheraEvent.ASSET_DELETED:
|
|
84
|
+
deleteManyAssets([info?.assetId]);
|
|
85
|
+
break;
|
|
86
|
+
case PentheraEvent.ERROR_DOWNLOAD:
|
|
87
|
+
setError({ assetId: info?.assetId, description: info?.body });
|
|
88
|
+
break;
|
|
89
|
+
case PentheraEvent.CONFIG_ASSET_FAILED:
|
|
90
|
+
case PentheraEvent.PENDING_ASSET_FOUND:
|
|
91
|
+
default:
|
|
92
|
+
console.log('case nout found:', info);
|
|
93
|
+
break;
|
|
94
|
+
}
|
|
95
|
+
};
|
|
96
|
+
onGetAllAssets();
|
|
97
|
+
let eventListener: EmitterSubscription | undefined;
|
|
98
|
+
eventListener = onListener(sessionConnect);
|
|
99
|
+
|
|
100
|
+
return () => {
|
|
101
|
+
eventListener?.remove();
|
|
102
|
+
setIsInitialized(false);
|
|
103
|
+
};
|
|
104
|
+
}, [
|
|
105
|
+
isInitialized,
|
|
106
|
+
addAsset,
|
|
107
|
+
deleteManyAssets,
|
|
108
|
+
onGetAllAssets,
|
|
109
|
+
updateAssetsProgress,
|
|
110
|
+
setError,
|
|
111
|
+
]);
|
|
112
|
+
}
|