@takeoffmedia/react-native-penthera 0.2.30 → 0.2.32
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 -6
- package/ios/drm/FairPlayDrmSetup.swift +53 -93
- package/lib/commonjs/hooks/usePenthera/usePenthera.js +29 -1
- package/lib/commonjs/hooks/usePenthera/usePenthera.js.map +1 -1
- package/lib/module/hooks/usePenthera/usePenthera.js +29 -1
- package/lib/module/hooks/usePenthera/usePenthera.js.map +1 -1
- package/lib/typescript/hooks/usePenthera/usePenthera.d.ts.map +1 -1
- package/lib/typescript/hooks/usePenthera/usePenthera.types.d.ts +4 -0
- package/lib/typescript/hooks/usePenthera/usePenthera.types.d.ts.map +1 -1
- package/package.json +1 -1
- package/src/hooks/usePenthera/usePenthera.tsx +29 -0
- package/src/hooks/usePenthera/usePenthera.types.ts +4 -0
package/ios/Penthera.swift
CHANGED
|
@@ -300,16 +300,14 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
300
300
|
let licenceHttpHeader = drm["licence_server_http_header"] as! String? ?? ""
|
|
301
301
|
let licence = drm["licence_server"] as! String? ?? ""
|
|
302
302
|
let cert = drm["fairplay_cert"] as! String? ?? ""
|
|
303
|
+
FairPlayDrmSetup.initDrmUrls(certificateUrl: cert, licenceUrl: licence)
|
|
303
304
|
|
|
304
|
-
|
|
305
|
+
if (!FairPlayDrmSetup.configureAsset(assetID: assetID, header:licenceHttpHeader, token: token)) {
|
|
305
306
|
EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.FAIR_PLAY_LICENSE_DELEGATE_ERROR, assetId: "", body: "")
|
|
306
307
|
return
|
|
307
308
|
}
|
|
308
309
|
|
|
309
|
-
|
|
310
|
-
EventEmitter.sharedInstance.dispatch(name: "penthera", code: PentheraEvent.FAIR_PLAY_LICENSE_DELEGATE_ERROR, assetId: "", body: "")
|
|
311
|
-
return
|
|
312
|
-
}
|
|
310
|
+
|
|
313
311
|
config.protectionType = .vde_AssetProtectionTypeFairPlay
|
|
314
312
|
|
|
315
313
|
}
|
|
@@ -342,6 +340,7 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
342
340
|
func getDownloads(blank: String, resolve: @escaping RCTPromiseResolveBlock, reject: @escaping RCTPromiseRejectBlock) -> Void {
|
|
343
341
|
let completedAssets = VirtuosoAsset.completedAssets(withAvailabilityFilter: false)
|
|
344
342
|
let pendingAssets = VirtuosoAsset.pendingAssets(withAvailabilityFilter: false)
|
|
343
|
+
|
|
345
344
|
var offlineCatalogs: [OfflineCatalog] = []
|
|
346
345
|
|
|
347
346
|
// Process completed and pending assets using a shared function
|
|
@@ -387,7 +386,7 @@ class Penthera: RCTEventEmitter, VirtuosoDownloadEngineNotificationsDelegate {
|
|
|
387
386
|
thumbnails: thumbnails,
|
|
388
387
|
isCompleted: va.downloadCompleteDateTime != nil ? true : false,
|
|
389
388
|
isPaused: va.isPaused,
|
|
390
|
-
percentage: Float(va.fractionComplete)
|
|
389
|
+
percentage: Float(va.fractionComplete)
|
|
391
390
|
)
|
|
392
391
|
offlineCatalogs.append(catalog)
|
|
393
392
|
}
|
|
@@ -1,106 +1,66 @@
|
|
|
1
|
-
//
|
|
2
|
-
// FairPlayDrmSetup.swift
|
|
3
|
-
// react-native-test
|
|
4
|
-
//
|
|
5
|
-
// Created by Oscar Gonzalez on 14/02/23.
|
|
6
|
-
//
|
|
7
|
-
|
|
8
1
|
import UIKit
|
|
9
2
|
import VirtuosoClientDownloadEngine
|
|
10
3
|
|
|
11
4
|
class FairPlayDrmSetup: NSObject {
|
|
12
5
|
|
|
13
|
-
|
|
14
|
-
private var
|
|
15
|
-
|
|
16
|
-
private var
|
|
17
|
-
private var
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
6
|
+
private static var _delegate: VirtuosoClientDownloadEngine.VirtuosoLicenseDelegateHelper = _initDelegate()
|
|
7
|
+
private static var _delegate_lock = "DELEGATE_LOCK"
|
|
8
|
+
|
|
9
|
+
private static var _certificateUrl: String?
|
|
10
|
+
private static var _licenseUrl: String?
|
|
11
|
+
|
|
12
|
+
static func initDrmUrls(certificateUrl: String, licenceUrl: String) {
|
|
13
|
+
if(_certificateUrl == nil || _licenseUrl == nil){
|
|
14
|
+
_certificateUrl = certificateUrl
|
|
15
|
+
_licenseUrl = licenceUrl
|
|
16
|
+
|
|
17
|
+
VirtuosoLicenseManager.downloadClientAppCertificate(fromURL: certificateUrl, for: .vlm_FairPlay)
|
|
18
|
+
VirtuosoLicenseManager.setLicenseServerURL(licenceUrl, for: .vlm_FairPlay)
|
|
19
|
+
|
|
20
|
+
print("******************+")
|
|
21
|
+
print(certificateUrl)
|
|
22
|
+
print("******************+")
|
|
23
|
+
|
|
24
|
+
print("delegate --> \(FairPlayDrmSetup._delegate)")
|
|
25
|
+
VirtuosoLicenseManager.setDelegate(FairPlayDrmSetup._delegate)
|
|
26
|
+
VirtuosoLicenseManager.setLicenseProcessingDelegate(FairPlayLicenseProcessingDelegate())
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
30
|
+
private static func _initDelegate() -> VirtuosoClientDownloadEngine.VirtuosoLicenseDelegateHelper!
|
|
31
|
+
{
|
|
32
|
+
objc_sync_enter(_delegate_lock)
|
|
33
|
+
|
|
34
|
+
defer { objc_sync_exit(_delegate_lock) }
|
|
35
|
+
return VirtuosoLicenseDelegateHelper()
|
|
32
36
|
}
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
|
|
41
|
-
// Class VirtuosoLicenseDelegateHelper is provided as a helper for implementing
|
|
42
|
-
// delegate VirtuosoLicenseManagerDelegate. You are welcome to provide your own
|
|
43
|
-
// implentation of VirtuosoLicenseManagerDelegate and not use VirtuosoLicenseDelegateHelper
|
|
44
|
-
//
|
|
45
|
-
// VirtuosoLicenseDelegateHelper will automatically handle the delegate methods
|
|
46
|
-
// You need to provide VirtuosoLicenseConfiguration details and VirtuosoLicenseDelegateHelper
|
|
47
|
-
// will use that to implement the delegate callbacks.
|
|
48
|
-
//
|
|
49
|
-
// There are two options for how you setup VirtuosoLicenseDelegateHelper:
|
|
50
|
-
// 1) Provide one unique instance of VirtuosoLicenseConfiguration for each unique AssetID.
|
|
51
|
-
// 2) Proide one instance of VirtuosoLicenseConfiguration which is then used for all Assdets
|
|
52
|
-
//
|
|
53
|
-
// If you need to customize the parameters VirtuosoLicenseConfiguration for individual Assets,
|
|
54
|
-
// you can do that using the following:
|
|
55
|
-
// delegate.addLicense(<#T##config: VirtuosoLicenseConfiguration##VirtuosoLicenseConfiguration#>, forAssetID: <#T##String#>)
|
|
56
|
-
//
|
|
57
|
-
// If the parameters for VirtuosoLicenseConfiguration apply uniformly to all of your Assets,
|
|
58
|
-
// you can provide a single instance as follows:
|
|
59
|
-
// delegate.addLicense(<#T##config: VirtuosoLicenseConfiguration##VirtuosoLicenseConfiguration#>)
|
|
60
|
-
|
|
61
|
-
guard let vlc = VirtuosoLicenseConfiguration.init(suffix: nil, renewal: nil, parameters: [:], headers: [
|
|
62
|
-
"X-AxDRM-Message" : customerToken!,
|
|
63
|
-
"content-type" : "application/octet-stream"
|
|
64
|
-
]) else {
|
|
65
|
-
return nil
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
let delegate = VirtuosoLicenseDelegateHelper()
|
|
69
|
-
delegate.addLicense(vlc, forAssetID: assetID)
|
|
70
|
-
|
|
71
|
-
// One of the following calls is required for this code to work.
|
|
72
|
-
// delegate.addLicense(T##config: VirtuosoLicenseConfiguration##VirtuosoLicenseConfiguration)
|
|
73
|
-
// delegate.addLicense(<#T##config: VirtuosoLicenseConfiguration##VirtuosoLicenseConfiguration#>, forAssetID: <#T##String#>)
|
|
74
|
-
|
|
75
|
-
if (!delegate.isConfigured()) {
|
|
76
|
-
// IMPORTANT
|
|
77
|
-
// Code will fail here until you uncomment one of the above lines and initialize by adding a license.
|
|
78
|
-
print("Code will fail here until you uncomment one of the above lines and initialize by adding a license.")
|
|
79
|
-
return nil
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
return delegate
|
|
37
|
+
|
|
38
|
+
static func configureAsset(assetID: String, header: String?, token: String) ->Bool {
|
|
39
|
+
|
|
40
|
+
guard let _ = FairPlayDrmSetup._licenseUrl else {
|
|
41
|
+
print("******************+")
|
|
42
|
+
print("MUST CONFIGURE FAIRPLAY LICENSE URL on FairPlayDrmSetup before first use")
|
|
43
|
+
print("******************+")
|
|
44
|
+
return false
|
|
83
45
|
}
|
|
84
46
|
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
VirtuosoLicenseManager.downloadClientAppCertificate(fromURL: self.customerAppCertificateUrl, for: .vlm_FairPlay)
|
|
92
|
-
VirtuosoLicenseManager.setLicenseServerURL(self.customerLicenceUrl, for: .vlm_FairPlay)
|
|
93
|
-
|
|
94
|
-
guard let delegate = createLicenseConfigurationDelegate() else {
|
|
95
|
-
print("failed to initialize VirtuosoLicenseManager delegate")
|
|
47
|
+
guard let _ = FairPlayDrmSetup._certificateUrl else {
|
|
48
|
+
print("******************+")
|
|
49
|
+
print("MUST CONFIGURE FAIRPLAY CERTIFICATE URL on FairPlayDrmSetup before first use")
|
|
50
|
+
print("******************+")
|
|
96
51
|
return false
|
|
97
52
|
}
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
|
|
101
|
-
|
|
102
|
-
|
|
103
|
-
|
|
53
|
+
|
|
54
|
+
|
|
55
|
+
guard let vlc = VirtuosoLicenseConfiguration.init(suffix: nil, renewal: nil, parameters: [:], headers: [
|
|
56
|
+
"X-AxDRM-Message" : token,
|
|
57
|
+
"content-type" : "application/octet-stream"
|
|
58
|
+
]) else {
|
|
59
|
+
return false
|
|
60
|
+
}
|
|
61
|
+
|
|
62
|
+
FairPlayDrmSetup._delegate.addLicense(vlc, forAssetID: assetID)
|
|
63
|
+
|
|
104
64
|
return true
|
|
105
65
|
}
|
|
106
66
|
|
|
@@ -14,6 +14,7 @@ const usePenthera = (0, _zustand.create)(set => ({
|
|
|
14
14
|
assetId: '',
|
|
15
15
|
description: ''
|
|
16
16
|
},
|
|
17
|
+
assetsPending: [],
|
|
17
18
|
loadAssets: assets => set(() => ({
|
|
18
19
|
assets
|
|
19
20
|
})),
|
|
@@ -28,6 +29,22 @@ const usePenthera = (0, _zustand.create)(set => ({
|
|
|
28
29
|
}
|
|
29
30
|
};
|
|
30
31
|
}),
|
|
32
|
+
updateAssetCompleted: assetID => {
|
|
33
|
+
set(state => {
|
|
34
|
+
const assets = state.assets.map(item => {
|
|
35
|
+
if (item.id === assetID) {
|
|
36
|
+
return {
|
|
37
|
+
...item,
|
|
38
|
+
isCompleted: true
|
|
39
|
+
};
|
|
40
|
+
}
|
|
41
|
+
return item;
|
|
42
|
+
});
|
|
43
|
+
return {
|
|
44
|
+
assets
|
|
45
|
+
};
|
|
46
|
+
});
|
|
47
|
+
},
|
|
31
48
|
onGetAllAssets: async () => {
|
|
32
49
|
try {
|
|
33
50
|
const assets = await (0, _nativeModules.getDownloads)('');
|
|
@@ -65,7 +82,8 @@ const usePenthera = (0, _zustand.create)(set => ({
|
|
|
65
82
|
assetError: {
|
|
66
83
|
assetId: '',
|
|
67
84
|
description: ''
|
|
68
|
-
}
|
|
85
|
+
},
|
|
86
|
+
assetsPending: state.assetsPending.filter(asset => asset.id !== item.id)
|
|
69
87
|
}));
|
|
70
88
|
} catch (error) {
|
|
71
89
|
console.error('error: downloadAsset', error);
|
|
@@ -118,6 +136,16 @@ const usePenthera = (0, _zustand.create)(set => ({
|
|
|
118
136
|
return set(() => ({
|
|
119
137
|
assetsProgress: {}
|
|
120
138
|
}));
|
|
139
|
+
},
|
|
140
|
+
setAssetPending: asset => {
|
|
141
|
+
set(state => ({
|
|
142
|
+
assetsPending: [...state.assetsPending, asset]
|
|
143
|
+
}));
|
|
144
|
+
},
|
|
145
|
+
removeAssetPending: assetId => {
|
|
146
|
+
set(state => ({
|
|
147
|
+
assetsPending: state.assetsPending.filter(asset => asset.id !== assetId)
|
|
148
|
+
}));
|
|
121
149
|
}
|
|
122
150
|
}));
|
|
123
151
|
exports.usePenthera = usePenthera;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["_reactNative","require","_zustand","_nativeModules","usePenthera","create","set","assets","assetsProgress","assetError","assetId","description","loadAssets","addAsset","asset","state","updateAssetsProgress","progress","onGetAllAssets","getDownloads","Array","isArray","error","console","log","onDownload","_ref","
|
|
1
|
+
{"version":3,"names":["_reactNative","require","_zustand","_nativeModules","usePenthera","create","set","assets","assetsProgress","assetError","assetId","description","assetsPending","loadAssets","addAsset","asset","state","updateAssetsProgress","progress","updateAssetCompleted","assetID","map","item","id","isCompleted","onGetAllAssets","getDownloads","Array","isArray","error","console","log","onDownload","_ref","url","drm","_item$thumbnails","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","Platform","OS","download","JSON","stringify","filter","deleteMany","assetIds","response","deleted","Object","keys","updatedAssetsProgress","forEach","includes","onPauseDownload","pauseDownload","onPlayVideo","playAsset","setError","dataParse","setConfigParameters","data","configParameters","clearAssetProgress","setAssetPending","removeAssetPending","exports"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"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"}
|
|
@@ -8,6 +8,7 @@ export const usePenthera = create(set => ({
|
|
|
8
8
|
assetId: '',
|
|
9
9
|
description: ''
|
|
10
10
|
},
|
|
11
|
+
assetsPending: [],
|
|
11
12
|
loadAssets: assets => set(() => ({
|
|
12
13
|
assets
|
|
13
14
|
})),
|
|
@@ -22,6 +23,22 @@ export const usePenthera = create(set => ({
|
|
|
22
23
|
}
|
|
23
24
|
};
|
|
24
25
|
}),
|
|
26
|
+
updateAssetCompleted: assetID => {
|
|
27
|
+
set(state => {
|
|
28
|
+
const assets = state.assets.map(item => {
|
|
29
|
+
if (item.id === assetID) {
|
|
30
|
+
return {
|
|
31
|
+
...item,
|
|
32
|
+
isCompleted: true
|
|
33
|
+
};
|
|
34
|
+
}
|
|
35
|
+
return item;
|
|
36
|
+
});
|
|
37
|
+
return {
|
|
38
|
+
assets
|
|
39
|
+
};
|
|
40
|
+
});
|
|
41
|
+
},
|
|
25
42
|
onGetAllAssets: async () => {
|
|
26
43
|
try {
|
|
27
44
|
const assets = await getDownloads('');
|
|
@@ -59,7 +76,8 @@ export const usePenthera = create(set => ({
|
|
|
59
76
|
assetError: {
|
|
60
77
|
assetId: '',
|
|
61
78
|
description: ''
|
|
62
|
-
}
|
|
79
|
+
},
|
|
80
|
+
assetsPending: state.assetsPending.filter(asset => asset.id !== item.id)
|
|
63
81
|
}));
|
|
64
82
|
} catch (error) {
|
|
65
83
|
console.error('error: downloadAsset', error);
|
|
@@ -112,6 +130,16 @@ export const usePenthera = create(set => ({
|
|
|
112
130
|
return set(() => ({
|
|
113
131
|
assetsProgress: {}
|
|
114
132
|
}));
|
|
133
|
+
},
|
|
134
|
+
setAssetPending: asset => {
|
|
135
|
+
set(state => ({
|
|
136
|
+
assetsPending: [...state.assetsPending, asset]
|
|
137
|
+
}));
|
|
138
|
+
},
|
|
139
|
+
removeAssetPending: assetId => {
|
|
140
|
+
set(state => ({
|
|
141
|
+
assetsPending: state.assetsPending.filter(asset => asset.id !== assetId)
|
|
142
|
+
}));
|
|
115
143
|
}
|
|
116
144
|
}));
|
|
117
145
|
//# sourceMappingURL=usePenthera.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"names":["Platform","create","deleteMany","download","getDownloads","pauseDownload","playAsset","configParameters","usePenthera","set","assets","assetsProgress","assetError","assetId","description","loadAssets","addAsset","asset","state","updateAssetsProgress","progress","onGetAllAssets","Array","isArray","error","console","log","onDownload","_ref","
|
|
1
|
+
{"version":3,"names":["Platform","create","deleteMany","download","getDownloads","pauseDownload","playAsset","configParameters","usePenthera","set","assets","assetsProgress","assetError","assetId","description","assetsPending","loadAssets","addAsset","asset","state","updateAssetsProgress","progress","updateAssetCompleted","assetID","map","item","id","isCompleted","onGetAllAssets","Array","isArray","error","console","log","onDownload","_ref","url","drm","_item$thumbnails","dataAndroid","asset_id","content_url","poster","thumbnails","thumbnail","subtitle","dataBySO","OS","JSON","stringify","filter","assetIds","response","deleted","Object","keys","updatedAssetsProgress","forEach","includes","onPauseDownload","onPlayVideo","setError","dataParse","setConfigParameters","data","clearAssetProgress","setAssetPending","removeAssetPending"],"sourceRoot":"../../../../src","sources":["hooks/usePenthera/usePenthera.tsx"],"mappings":"AAAA,SAASA,QAAQ,QAAQ,cAAc;AACvC,SAASC,MAAM,QAAQ,SAAS;AAOhC,SACEC,UAAU,EACVC,QAAQ,EACRC,YAAY,EACZC,aAAa,EACbC,SAAS,EACTC,gBAAgB,QACX,qBAAqB;AAG5B,OAAO,MAAMC,WAAW,GAAGP,MAAM,CAAkCQ,GAAG,KAAM;EAC1EC,MAAM,EAAE,EAAE;EACVC,cAAc,EAAE,CAAC,CAAC;EAClBC,UAAU,EAAE;IACVC,OAAO,EAAE,EAAE;IACXC,WAAW,EAAE;EACf,CAAC;EACDC,aAAa,EAAE,EAAE;EACjBC,UAAU,EAAGN,MAA+B,IAC1CD,GAAG,CAAC,OAAO;IACTC;EACF,CAAC,CAAC,CAAC;EACLO,QAAQ,EAAGC,KAAK,IACdT,GAAG,CAAEU,KAAK,KAAM;IACdT,MAAM,EAAE,CAAC,GAAGS,KAAK,CAACT,MAAM,EAAEQ,KAAK;EACjC,CAAC,CAAC,CAAC;EACLE,oBAAoB,EAAGC,QAAQ,IAC7BZ,GAAG,CAAEU,KAAK,IAAK;IACb,OAAO;MACLR,cAAc,EAAE;QACd,GAAGQ,KAAK,CAACR,cAAc;QACvB,GAAGU;MACL;IACF,CAAC;EACH,CAAC,CAAC;EACJC,oBAAoB,EAAGC,OAAe,IAAK;IACzCd,GAAG,CAAEU,KAAK,IAAK;MACb,MAAMT,MAAM,GAAGS,KAAK,CAACT,MAAM,CAACc,GAAG,CAAEC,IAAI,IAAK;QACxC,IAAIA,IAAI,CAACC,EAAE,KAAKH,OAAO,EAAE;UACvB,OAAO;YAAE,GAAGE,IAAI;YAAEE,WAAW,EAAE;UAAK,CAAC;QACvC;QACA,OAAOF,IAAI;MACb,CAAC,CAAC;MACF,OAAO;QACLf;MACF,CAAC;IACH,CAAC,CAAC;EACJ,CAAC;EACDkB,cAAc,EAAE,MAAAA,CAAA,KAAY;IAC1B,IAAI;MACF,MAAMlB,MAAmC,GAAG,MAAMN,YAAY,CAAC,EAAE,CAAC;MAClE,IAAIyB,KAAK,CAACC,OAAO,CAACpB,MAAM,CAAC,EAAE;QACzB,OAAOD,GAAG,CAAC,OAAO;UAChBC;QACF,CAAC,CAAC,CAAC;MACL;IACF,CAAC,CAAC,OAAOqB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,uBAAuB,EAAEF,KAAK,CAAC;IAC7C;EACF,CAAC;EACDG,UAAU,EAAE,MAAAC,IAAA,IAA8B;IAAA,IAAvB;MAAEV,IAAI;MAAEW,GAAG;MAAEC;IAAI,CAAC,GAAAF,IAAA;IACnC,IAAI;MAAA,IAAAG,gBAAA;MACF,MAAMC,WAAW,GAAG;QAClBC,QAAQ,EAAEf,IAAI,CAACC,EAAE;QACjBe,WAAW,EAAEL,GAAG;QAChBM,MAAM,GAAAJ,gBAAA,GAAEb,IAAI,CAACkB,UAAU,cAAAL,gBAAA,uBAAfA,gBAAA,CAAiBM,SAAS;QAClCC,QAAQ,EAAE;MACZ,CAAC;MACD,MAAMC,QAAQ,GACZ9C,QAAQ,CAAC+C,EAAE,KAAK,SAAS,GAAGR,WAAW,GAAG;QAAEd,IAAI;QAAEW,GAAG;QAAEC;MAAI,CAAC;MAC9D,MAAMlC,QAAQ,CAAC6C,IAAI,CAACC,SAAS,CAACH,QAAQ,CAAC,CAAC;MACxC,OAAOrC,GAAG,CAAEU,KAAK,KAAM;QACrBT,MAAM,EAAE,CAAC,GAAGS,KAAK,CAACT,MAAM,EAAEe,IAAI,CAAC;QAC/Bb,UAAU,EAAE;UACVC,OAAO,EAAE,EAAE;UACXC,WAAW,EAAE;QACf,CAAC;QACDC,aAAa,EAAEI,KAAK,CAACJ,aAAa,CAACmC,MAAM,CACtChC,KAAK,IAAKA,KAAK,CAACQ,EAAE,KAAKD,IAAI,CAACC,EAAE;MAEnC,CAAC,CAAC,CAAC;IACL,CAAC,CAAC,OAAOK,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,sBAAsB,EAAEA,KAAK,CAAC;IAC9C;EACF,CAAC;EACD7B,UAAU,EAAE,MAAOiD,QAAkB,IAAK;IACxC,IAAI;MACF,MAAMC,QAAQ,GAAG,MAAMlD,UAAU,CAACiD,QAAQ,CAAC;MAC3C,MAAME,OAAO,GAAGC,MAAM,CAACC,IAAI,CAACH,QAAQ,CAAC,CAACF,MAAM,CAAEzB,IAAI,IAAK2B,QAAQ,CAAC3B,IAAI,CAAC,CAAC;MAEtE,OAAOhB,GAAG,CAAEU,KAAK,IAAK;QACpB,MAAMqC,qBAAqB,GAAG;UAAE,GAAGrC,KAAK,CAACR;QAAe,CAAC;QACzD0C,OAAO,CAACI,OAAO,CAAE5C,OAAe,IAAK;UACnC,IAAIM,KAAK,EAAE;YACT,OAAOqC,qBAAqB,CAAC3C,OAAO,CAAC;UACvC;QACF,CAAC,CAAC;QACF,OAAO;UACLH,MAAM,EAAES,KAAK,CAACT,MAAM,CAACwC,MAAM,CACxBhC,KAAK,IAAK,CAACmC,OAAO,CAACK,QAAQ,CAACxC,KAAK,CAACQ,EAAE,CAAW,CACjD;UACDf,cAAc,EAAE6C;QAClB,CAAC;MACH,CAAC,CAAC;IACJ,CAAC,CAAC,OAAOzB,KAAK,EAAE;MACdC,OAAO,CAACD,KAAK,CAAC,mBAAmB,EAAEA,KAAK,CAAC;IAC3C;EACF,CAAC;EACD4B,eAAe,EAAE,MAAO9C,OAAe,IAAK;IAC1C,MAAMR,aAAa,CAACQ,OAAO,CAAC;EAC9B,CAAC;EACD+C,WAAW,EAAE,MAAO/C,OAAe,IAAK;IACtC,IAAI;MACF,MAAMuC,QAA2B,GAAG,MAAM9C,SAAS,CAACO,OAAO,CAAC;MAC5D,OAAOuC,QAAQ;IACjB,CAAC,CAAC,OAAOrB,KAAK,EAAE;MACdC,OAAO,CAACC,GAAG,CAAC,sBAAsB,EAAEF,KAAK,CAAC;MAC1C,OAAO,CAAC,CAAC;IACX;EACF,CAAC;EACD8B,QAAQ,EAAGC,SAAS,IAAK;IACvB,OAAOrD,GAAG,CAAC,OAAO;MAChBG,UAAU,EAAEkD,SAAS;MACrBnD,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;EACL,CAAC;EACDoD,mBAAmB,EAAE,MAAOC,IAAI,IAAK;IACnC,MAAMzD,gBAAgB,CAACyC,IAAI,CAACC,SAAS,CAACe,IAAI,CAAC,CAAC;EAC9C,CAAC;EACDC,kBAAkB,EAAEA,CAAA,KAAM;IACxB,OAAOxD,GAAG,CAAC,OAAO;MAChBE,cAAc,EAAE,CAAC;IACnB,CAAC,CAAC,CAAC;EACL,CAAC;EACDuD,eAAe,EAAGhD,KAAgC,IAAK;IACrDT,GAAG,CAAEU,KAAK,KAAM;MACdJ,aAAa,EAAE,CAAC,GAAGI,KAAK,CAACJ,aAAa,EAAEG,KAAK;IAC/C,CAAC,CAAC,CAAC;EACL,CAAC;EACDiD,kBAAkB,EAAGtD,OAAe,IAAK;IACvCJ,GAAG,CAAEU,KAAK,KAAM;MACdJ,aAAa,EAAEI,KAAK,CAACJ,aAAa,CAACmC,MAAM,CACtChC,KAAK,IAAKA,KAAK,CAACQ,EAAE,KAAKb,OAAO;IAEnC,CAAC,CAAC,CAAC;EACL;AACF,CAAC,CAAC,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
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;AAW7B,eAAO,MAAM,WAAW,
|
|
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;AAW7B,eAAO,MAAM,WAAW,6FAwIrB,CAAC"}
|
|
@@ -35,6 +35,7 @@ export type PentheraState = {
|
|
|
35
35
|
assets: PentheraTypes.ItemCatalog[] | [];
|
|
36
36
|
assetsProgress: AssetProgress | {};
|
|
37
37
|
assetError: AssetError;
|
|
38
|
+
assetsPending: PentheraTypes.ItemCatalog[] | [];
|
|
38
39
|
};
|
|
39
40
|
export type PentheraProviderProps = React.PropsWithChildren<{
|
|
40
41
|
userId: string;
|
|
@@ -58,6 +59,9 @@ export type PentheraAction = {
|
|
|
58
59
|
setError: (data: AssetError) => void;
|
|
59
60
|
setConfigParameters: (data: PentheraTypes.IConfigParameters) => void;
|
|
60
61
|
clearAssetProgress: () => void;
|
|
62
|
+
updateAssetCompleted: (assetID: string) => void;
|
|
63
|
+
setAssetPending: (assets: PentheraTypes.ItemCatalog) => void;
|
|
64
|
+
removeAssetPending: (assetID: string) => void;
|
|
61
65
|
};
|
|
62
66
|
export type Event = {
|
|
63
67
|
code: PentheraEvent;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"usePenthera.types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.types.ts"],"names":[],"mappings":";AAAA,OAAO,KAAK,EAAE,aAAa,EAAE,MAAM,6BAA6B,CAAC;AAEjE,oBAAY,aAAa;IACvB,gBAAgB,qBAAqB;IACrC,qBAAqB,0BAA0B;IAC/C,gBAAgB,qBAAqB;IACrC,iBAAiB,sBAAsB;IACvC,mBAAmB,wBAAwB;IAC3C,6BAA6B,kCAAkC;IAC/D,aAAa,kBAAkB;IAC/B,cAAc,mBAAmB;IACjC,mBAAmB,wBAAwB;CAC5C;AACD,MAAM,MAAM,OAAO,GAAG,MAAM,CAAC;AAC7B,KAAK,QAAQ,GAAG,MAAM,CAAC;AAEvB,MAAM,MAAM,aAAa,GAAG;IAC1B,CAAC,GAAG,EAAE,MAAM,GAAG,QAAQ,CAAC;CACzB,CAAC;AAEF,MAAM,MAAM,QAAQ,GAAG;IACrB,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;CAClB,CAAC;AAEF,MAAM,WAAW,iBAAiB;IAChC,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,MAAM,CAAC;IACjB,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,SAAS,CAAC,EAAE,QAAQ,EAAE,CAAC;IACvB,EAAE,CAAC,EAAE,MAAM,CAAC;IACZ,GAAG,CAAC,EAAE,MAAM,CAAC;IACb,OAAO,CAAC,EAAE,OAAO,CAAC;CACnB;AAED,MAAM,MAAM,aAAa,GAAG;IAC1B,MAAM,EAAE,aAAa,CAAC,WAAW,EAAE,GAAG,EAAE,CAAC;IACzC,cAAc,EAAE,aAAa,GAAG,EAAE,CAAC;IACnC,UAAU,EAAE,UAAU,CAAC;
|
|
1
|
+
{"version":3,"file":"usePenthera.types.d.ts","sourceRoot":"","sources":["../../../../src/hooks/usePenthera/usePenthera.types.ts"],"names":[],"mappings":"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"}
|
package/package.json
CHANGED
|
@@ -23,6 +23,7 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
|
|
|
23
23
|
assetId: '',
|
|
24
24
|
description: '',
|
|
25
25
|
},
|
|
26
|
+
assetsPending: [],
|
|
26
27
|
loadAssets: (assets: PentheraState['assets']) =>
|
|
27
28
|
set(() => ({
|
|
28
29
|
assets,
|
|
@@ -40,6 +41,19 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
|
|
|
40
41
|
},
|
|
41
42
|
};
|
|
42
43
|
}),
|
|
44
|
+
updateAssetCompleted: (assetID: string) => {
|
|
45
|
+
set((state) => {
|
|
46
|
+
const assets = state.assets.map((item) => {
|
|
47
|
+
if (item.id === assetID) {
|
|
48
|
+
return { ...item, isCompleted: true };
|
|
49
|
+
}
|
|
50
|
+
return item;
|
|
51
|
+
});
|
|
52
|
+
return {
|
|
53
|
+
assets,
|
|
54
|
+
};
|
|
55
|
+
});
|
|
56
|
+
},
|
|
43
57
|
onGetAllAssets: async () => {
|
|
44
58
|
try {
|
|
45
59
|
const assets: PentheraTypes.ItemCatalog[] = await getDownloads('');
|
|
@@ -69,6 +83,9 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
|
|
|
69
83
|
assetId: '',
|
|
70
84
|
description: '',
|
|
71
85
|
},
|
|
86
|
+
assetsPending: state.assetsPending.filter(
|
|
87
|
+
(asset) => asset.id !== item.id
|
|
88
|
+
),
|
|
72
89
|
}));
|
|
73
90
|
} catch (error) {
|
|
74
91
|
console.error('error: downloadAsset', error);
|
|
@@ -123,4 +140,16 @@ export const usePenthera = create<PentheraState & PentheraAction>((set) => ({
|
|
|
123
140
|
assetsProgress: {},
|
|
124
141
|
}));
|
|
125
142
|
},
|
|
143
|
+
setAssetPending: (asset: PentheraTypes.ItemCatalog) => {
|
|
144
|
+
set((state) => ({
|
|
145
|
+
assetsPending: [...state.assetsPending, asset],
|
|
146
|
+
}));
|
|
147
|
+
},
|
|
148
|
+
removeAssetPending: (assetId: string) => {
|
|
149
|
+
set((state) => ({
|
|
150
|
+
assetsPending: state.assetsPending.filter(
|
|
151
|
+
(asset) => asset.id !== assetId
|
|
152
|
+
),
|
|
153
|
+
}));
|
|
154
|
+
},
|
|
126
155
|
}));
|
|
@@ -39,6 +39,7 @@ export type PentheraState = {
|
|
|
39
39
|
assets: PentheraTypes.ItemCatalog[] | [];
|
|
40
40
|
assetsProgress: AssetProgress | {};
|
|
41
41
|
assetError: AssetError;
|
|
42
|
+
assetsPending: PentheraTypes.ItemCatalog[] | [];
|
|
42
43
|
};
|
|
43
44
|
|
|
44
45
|
export type PentheraProviderProps = React.PropsWithChildren<{
|
|
@@ -65,6 +66,9 @@ export type PentheraAction = {
|
|
|
65
66
|
setError: (data: AssetError) => void;
|
|
66
67
|
setConfigParameters: (data: PentheraTypes.IConfigParameters) => void;
|
|
67
68
|
clearAssetProgress: () => void;
|
|
69
|
+
updateAssetCompleted: (assetID: string) => void;
|
|
70
|
+
setAssetPending: (assets: PentheraTypes.ItemCatalog) => void;
|
|
71
|
+
removeAssetPending: (assetID: string) => void;
|
|
68
72
|
};
|
|
69
73
|
|
|
70
74
|
export type Event = {
|